# Solving "Truncate a String" / freeCodeCamp Algorithm Challenges

### 5/20/2020

Let's solve freeCodeCamp's Basic Algorithm Scripting Challenge, "Truncate a String"

## Our Starter Code (& Tests)

``````function truncateString(str, num) {
return str;
}

``````
``````// Tests
truncateString("Peter Piper picked a peck of pickled peppers", 11) should return "Peter Piper...".
truncateString("A-", 1) should return "A...".
truncateString("Absolutely Longer", 2) should return "Ab...".
``````

### Our Instructions

Truncate a string (first argument) if it is longer than the given maximum string length (second argument). Return the truncated string with a `...` ending.

## Thoughts

• We have two arguments as inputs, one being a `str` being a string, `num` being a number
• We have to return a string value
• Will use `.length`, which is a property on the String object

MDN Reference: String.length

### Further Thoughts

Reading this more carefully, we will only have to alter `str` if `num` is a greater value.

With this stipulation, we can run an if statement to see if we'll have to do anything. If `num` is greater than the length of `str`, we will just return `str` without any altering.

`if (num >= str.length) return str`

If the `str` length is greater than `num`, we have to alter the `str` content by removing the extra characters and adding a '...'.

As `substring()` has been used in prior challenges, it is a little familiar to us. We can definitely use it in this challenge as well.

MDN Reference: String.substring()

The way to use `substring()` is as follows:

``````str.substring(indexStart[, indexEnd])

indexEnd being optional
``````

We want to start at the 0 index, looking at the test cases. The second argument in `substring()` will be the value of `num`, as it will give us the index we want to stop the string at. Then we will will add the '...' per the instructions.

Let's look at the first test and see how `substring()` will work on that.

``````truncateString("A-tisket a-tasket A green and yellow basket", 8) should return "A-tisket...".

We start counting at 0 so we will go to the 7th index, length being 8.
0: 'A'
1: '-'
2: 't'
3: 'i'
4: 's'
5: 'k'
6: 'e'
7: 't'
``````

Here is it being executed in my browser's console just to double check.

The final part is to add '...' at the end of the string.

Here is some pseudo pseudocode:

``````function truncateString(str, num) {
if num > str's length
return str

return str.substring(0, num) + ...
}
``````

## Solution

**[SPOILER: SOLUTION TO CODE BELOW]** ```javascript function truncateString(str, num) { if (num >= str.length) return str; return str.substring(0, num) + "..."; } ```