Create Strings using Template Literals, what's wrong with this code

Tell us what’s happening:

Your code so far


const result = {
  success: ["max-length", "no-amd", "prefer-arrow-functions"],
  failure: ["no-var", "var-on-top", "linebreak"],
  skipped: ["id-blacklist", "no-dup-keys"]
};
function makeList(arr) {
  "use strict";
  // change code below this line
  const resultDisplayArray = arr.map((word) => `<li class=“text-warning”> ${word} </li>`);
  // change code above this line
  return resultDisplayArray;
}
/**
 * makeList(result.failure) should return:
 * [ <li class="text-warning">no-var</li>,
 *   <li class="text-warning">var-on-top</li>, 
 *   <li class="text-warning">linebreak</li> ]
 **/
const resultDisplayArray = makeList(result.failure);

console.log(resultDisplayArray)

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36.

Link to the challenge:
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6/create-strings-using-template-literals

Hi @siddharth002

There are two problems:

  1. The spaces before and after ${word}. Normally wouldn’t matter but that tests use Regex so it’s probably tripping them up.
  2. The quotes wrapping text-warning aren’t valid quotations for string literals. You want to use the “straight” ones: <li class="text-warning">

Thanks alot! Finally code works.:grinning:

1 Like