为什么我的array-shopping-list包含“undefined”?

时间:2018-05-14 12:24:38

标签: javascript arrays for-loop

亲爱的开发人员,您好

我的数组的每个值都应该在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);

2 个答案:

答案 0 :(得分:0)

stuff循环运行之前,

undefinedfor。另外,每次迭代都会覆盖循环中列表的内容。

正确的方法是:

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>

答案 1 :(得分:0)

因为你的stuff变量是在循环中声明的,它尚未初始化,这意味着返回undefined。更新您的代码如下:

function letsShop(){
  var array = ["milk", "cheese", "eggs"];
  var stuff = "";
  for (var i = 0; i < array.length; i++){
    stuff +="<li>" + array[i] + "</li>";
    document.getElementById("list").innerHTML=stuff;
  }
}

letsShop();