Create Strings using Template Literals Need Solution

Tell us what’s happening:
Hey guys, I cannot figure out what is wrong with my code. Thanks in advance!

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.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36.

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

You’re hard coding it to only work with an array of length 3. What happens if someone passes in an object with many more failures in it? Or fewer? Your code needs to handle that.

1 Like

You want to return an array with the individual list elements, each of which will be a string. The back-tick character (`) is used instead of quotes when you want to interpolate (substitute into) variables in a string.

Recall that an entire block surrounded by the back-tick characters will result in it being a string only.

1 Like

As mentioned, you probably don’t want to hard code your function to only work with arrays which have three elements. Try Array.prototype.map :

return arr.map(function(el) {
  return `<li class="text-warning">${el}</li>`;
});
1 Like

So the makeList function should return an array instead of string. Thank you very much!

Ah I see. The problem is solved now. Thanks!

Thanks for your hints. Really appreciate it!