Create Strings using Template Literals: Did not use Template Strings

Create Strings using Template Literals: Did not use Template Strings
0.0 0

#1

Tell us what’s happening:

Hello all,

Please find below my solution to this problem.
However, when I press “Run The Tests”, I get the message that I did not use Template Strings, even though I did use them in my opinion…

Does anyone know what I did wrong?

Thanks a lot!

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 = [`<li class="text-warning">${arr[0]}</li>`,`<li class="text-warning">${arr[1]}</li>`,`<li class="text-warning">${arr[2]}</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);

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 6.1; 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


#2

Hi @NMU21

You are correct, your solution is completely valid.

Unfortunately, it seems that the tests want you to pass this in a very particular way; specifically. it’s looking for any alphanumeric character inside the template (between the ${ and }). In your case because you’re accessing the array with bracket notation, it’s failing the regex and the test ([ and ] aren’t alphanumeric characters).

Ideally, you want to solve this using a for each loop: for (let word of arr) {} or map the array: arr.map(word => ).


#3

Perfect, thank a lot Joe!