Creating Strings Using Template Literals Question

Tell us what’s happening:

What could I do to make this work using forEach? At first, I declared resultDisplayArray as an empty array and then using push() to get forEach to work. I wanted to see if I could simplify further, but I get undefined when I run this code. Could anyone explain why?

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";
  const resultDisplayArray = arr.forEach(item =>`<li class="text-warning">${item}</li>`);    
  return resultDisplayArray;
}
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/80.0.3987.163 Safari/537.36.

Challenge: Create Strings using Template Literals

Link to the challenge:

use map instead of forEach

const resultDisplayArray = arr.map(item =>`<li class="text-warning">${item}</li>`);

I would suggest you read more about map vs forEach. Unlike map forEach doesn’t return an array.

I read that last night, but I thought I could make it return something by using the “return” keyword. I’ve seen that done, but it ultimately didn’t work out.