有人能帮我修复代码吗?我在这个练习中使用了forEach方法
我想我已经接近了,但它仍然没有定义,它已经在结果中了。失败是因为我添加了另一个字符串/num进行了检查。
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
const failureItems = [];
const results = arr.forEach(k => failureItems.push(`<li class="text-warning">${arr[k]}</li>`));
// Only change code above this line
return failureItems;
}
const failuresList = makeList(result.failure);
console.log(failuresList);
它应该导致这个
[
'<li class="text-warning">no-var</li>',
'<li class="text-warning">var-on-top</li>',
'<li class="text-warning">linebreak</li>'
]
但在这个代码中,我的结果是这个
[ '<li class="text-warning">undefined</li>',
'<li class="text-warning">undefined</li>',
'<li class="text-warning">undefined</li>' ]
您想要连接k
。同样如注释中所述,Array#forEach
返回undefined
。
修复上述问题:
arr.forEach(k => failureItems.push(`<li class="text-warning">${k}</li>`));
另一种使用Array#map
的解决方案:
function makeList(arr) {
return arr.map(k => `<li class="text-warning">${k}</li>`);
}
const result = {
success: ["max-length", "no-amd", "prefer-arrow-functions"],
failure: ["no-var", "var-on-top", "linebreak",],
skipped: ["no-extra-semi", "no-dup-keys"]
};
const failuresList = makeList(result.failure);
console.log(failuresList);