ES6 - Create Strings using Template Literals

Hello,
Could you plz explain how my code is wrong:
const result = {
success: [“max-length”, “no-amd”, “prefer-arrow-functions”],
failure: [“no-var”, “var-on-top”, “linebreak”],
skipped: [“no-extra-semi”, “no-dup-keys”]
};
function makeList(arr) {
// Only change code below this line
let failureItems=result.failure.map(function(element){
<li class="text-warning">${result.failure[""]}</li>
})

;
// Only change code above this line

return failureItems;
}

const failuresList = makeList(result.failure);

here is the error:

failuresList should be equal to the specified output.

Thanks
Sara


       **Your code so far**
       
```js
const result = {
 success: ["max-length", "no-amd", "prefer-arrow-functions"],
 failure: ["no-var", "var-on-top", "linebreak"],
 skipped: ["no-extra-semi", "no-dup-keys"]
};
function makeList(arr) {
 // Only change code below this line
let failureItems=result.failure.map(function(element){
  `<li class="text-warning">${result.failure[""]}</li>`
   })
 
  
 
 ;
 // Only change code above this line

 return failureItems;
}

const failuresList = 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/104.0.0.0 Safari/537.36

Challenge: ES6 - Create Strings using Template Literals

Link to the challenge:

You have a few issues here.

First, put this at the bottom of your code so you can see what you’re getting back:

console.log(failuresList)

Next, this callback:

function(element){
  `<li class="text-warning">${result.failure[""]}</li>`
   }

What is it returning?

For that matter, what is the [""] doing?

And you are mapping over result.failure. You realize that an array was passed into your function?

1 Like

Thanks.
I have added console.log(failuresList) and it displays [undefined, undefined, undefined] . Removed the bracket and quotes, still don understand he issue.
Sara

I found the issue
Thanks

1 Like