首页 > 解决方案 > 为什么我的数组购物清单包含“未定义”?

问题描述

你好亲爱的开发者,

我的数组的每个值都应该在 html 列表上有自己的项目符号 - 他们这样做了。但是在实际列表开始之前有一个“未定义”。我想知道它是从哪里来的。我的代码有什么问题?

谢谢你的帮助!

HTML:

Shopping List
<ul id="list"></ul>

JS:

function letsShop(){
var array = ["milk", "cheese", "eggs"];
for (var i = 0; i < array.length; i++){

var stuff = stuff + "<li>" + array[i] + "</li>";

document.getElementById("list").innerHTML=stuff;
}}

window.addEventListener("load", letsShop);

标签: javascriptarraysfor-loop

解决方案


stuff在循环运行undefined之前。for另外,每次迭代都会覆盖循环中列表的内容。

正确的方法是:

function letsShop() {
  // Declare the variable outside the loop
  var stuff = '';
  var array = ["milk", "cheese", "eggs"];

  for (var i = 0; i < array.length; i++) {
    stuff = stuff + "<li>" + array[i] + "</li>";
  }
  // Set the contents in list after the loop
  document.getElementById("list").innerHTML = stuff;
}

letsShop();
Shopping List
<ul id="list"></ul>


推荐阅读