使用 forEach 方法使用模板文字创建字符串

pic*_*mnc 1 javascript foreach template-literals

有人可以帮我修复我的代码吗?我在本练习中使用了 forEach 方法

\n

我认为我\xe2\x80\x99m关闭,但它\xe2\x80\x99s仍然给我未定义,它\xe2\x80\x99s已经在result.failure中,因为我通过添加另一个字符串/数字进行检查。

\n
const result = {\n  success: ["max-length", "no-amd", "prefer-arrow-functions"],\n  failure: ["no-var", "var-on-top", "linebreak",],\n  skipped: ["no-extra-semi", "no-dup-keys"]\n};\nfunction makeList(arr) {\n  // Only change code below this line\n  const failureItems = [];\n\n  const results = arr.forEach(k => failureItems.push(`<li class="text-warning">${arr[k]}</li>`));\n\n\n  // Only change code above this line\n\n  return failureItems;\n}\n\nconst failuresList = makeList(result.failure);\nconsole.log(failuresList);\n
Run Code Online (Sandbox Code Playgroud)\n

应该是这样的结果

\n
[\n  '<li class="text-warning">no-var</li>',\n  '<li class="text-warning">var-on-top</li>',\n  '<li class="text-warning">linebreak</li>'\n]\n
Run Code Online (Sandbox Code Playgroud)\n

但在这段代码中我的结果是这样的

\n
[ '<li class="text-warning">undefined</li>',\n  '<li class="text-warning">undefined</li>',\n  '<li class="text-warning">undefined</li>' ]\n
Run Code Online (Sandbox Code Playgroud)\n

Maj*_*awi 5

你想要连接k. 另外,正如评论中提到的,Array#forEach返回undefined.

要解决上述问题:

arr.forEach(k => failureItems.push(`<li class="text-warning">${k}</li>`));
Run Code Online (Sandbox Code Playgroud)

另一种解决方案使用Array#map

arr.forEach(k => failureItems.push(`<li class="text-warning">${k}</li>`));
Run Code Online (Sandbox Code Playgroud)