Create Strings using place holder

Tell us what’s happening:
I have copied the code from a youtube channel which also shows passing the test. But it doesn’t go through here while the actual result is just the same as expected but still not able to figure out where the code goes wrong.
couldn’t get any clue from the previous posts either.
I would appreciate any help on this!

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"]
};
const makeList = (arr) =>
 { "use strict";

  // change code below this line
  const resultDisplayArray = arr.reduce((acc,item,i) => {
    return `${acc}
    <li class="text-warning">${item}</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/66.0.3359.181 Safari/537.36.

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

I’m not sure how the reduce function would work for that. First of all, you need it to return and array and reduce returns a value. I’m sure there’s a way to make it work with pushes or something, but map is the most logical choice here. It will go through the values one by one and return them in an array after you tinker with them. Use map and return li element made with a template literal to inject the mapped data.

Let us know if this is an insufficient hint.

I didn’t realize that the expected answer is an array . Thanks a lot for clarifying the problem and its solution! :slight_smile: