Create Strings using Template Literals - swapped lines

hey,

I would like to know why my code isn’t working.
the correct answer is:

function makeList(arr) {
// Only change code below this line
const failureItems = [];
for ( let i = 0; i < arr.length; i++) {
failureItems.push(<li class="text-warning">${arr[i]}</li>);
};

my code is:

function makeList(arr) {
// Only change code below this line
for ( let i = 0; i < arr.length; i++) {
const failureItems = [];
failureItems.push(<li class="text-warning">${arr[i]}</li>);
};

(i swapped the lines 8 and 9)
why does it matter?

THX for the helpers.

Your code so far


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
for ( let i = 0; i < arr.length; i++) {
const failureItems = [];
failureItems.push(`<li class="text-warning">${arr[i]}</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/86.0.4240.75 Safari/537.36.

Challenge: Create Strings using Template Literals

Link to the challenge:

When you put const failureItems = []; inside the loop, the array is re-initialised to an empty array with every loop. You push one item into it - next loop - array is empty again.

1 Like

got it!

thank you very much :slight_smile: