Truncate a String - JavaScript Solution & Walkthrough

(08/16) Learn how to solve coding challenges using FreeCodeCamp's curriculum.

Truncate a String - JavaScript Solution & Walkthrough

08/16 Truncate a String

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

function truncateString(str, num) {

  return str;
}

truncateString("A-tisket a-tasket A green and yellow basket", 8);

Credit: FreeCodeCamp.org

Understanding the Challenge

In this challenge, you'll be given a string (str) and a number (num). Your task is to complete the function such that it checks whether the string is longer than the given number. If it is, then the function should truncate str at the point where the length is equal to num. And then add the three dots ... to it.

For example given a string "abcde" and a number 3, the function should return abc...

If the length of str is equal to or less than num, then we should return the string just as it is.

Pseudocode

Given a string and a number
  compare length of string and number
    if length of string is less than or equal to number
    return string just as it is
    if length of string is greater than number
    truncate string to have equal length of number
    return truncated string with "..." added at the end

Solving the Challenge

First we need to compare the length of the given string and the number. If the length of the string is less than or equal to num str.length <= num, the function should return string just as it has been given.

if (str.length <= num) {
  return str
}

However, if the length of the string is greater than the given number, then the function should truncate the string to be equal to the given maximun string length str.length > num. The function should also add ... to the end.

To truncate the string, we can use the .substring() method. This method helps us to extract part of a string. It takes two arguments. The first argument is where the extraction should begin. The second argument is where it should end. In the case of the truncateString function, the extraction will begin at first character of the string (0) and end at the character at the index of num.

str.substring(0, num) + "..."

Final Solution

function truncateString(str, num) {
  if (str.length <= num) {
    return str
  } else {
    return str.substring(0, num) + "..."
  }
}

truncateString("A-tisket a-tasket A green and yellow basket", 8); // A-tisket...

Congratulations!

You just cracked the eighth challenge in this series.

Cheers and happy coding!