Create Strings using Template Literals: no such property

Tell us what’s happening:
I get the error Cannot read property ‘every’ of undefined, but there is no such property ‘every’. Along with that I cannot pass the tests for:

resultDisplayArray is an array containing result failure messages.
resultDisplayArray is the desired output.

Could someone help me debug this code? I have a feeling I’m not understanding the question requirements.

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 = [];
  resultDisplayArray.push(
    [`<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 console.log(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 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36.

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

The error message is coming from the tests. You are returning the result of console.log(resultDisplayArray) (which is undefined) rather than resultDisplayArray itself.

1 Like

Ah I put the console.log to debug the code (but i bugged it even further lol). I removed it and I still can’t pass the test for:

resultDisplayArray is the desired output.

Any advice is appreciated, cheers.


This is the output when I edit the code to- console.log(makeList(result.failure));


<li class="text-warning">no-var</li>,<li class="text-warning">var-on-top</li>,<li class="text-warning">linebreak</li>

So it seems like my answer is right, but it isnt? I know there are other ways to solve this question, but I’d like to know why my answer isn’t right.

You are pushing arrays into the array, you should just push the template strings. You can loop the array or just use three push calls if you want.

1 Like

That’s solved it, thanks a ton!