我是编程和 javascript 的新手,所以请帮助我进行循环

Abh*_*yay 0 javascript arrays web

let itemsArr = ["Milk", "Bread", "Potato"];
let quantityArr = [5, 2, 3];

for (i = 0; i <= itemsArr.length; i++) {
  if (i <= itemsArr.length)
    console.log(itemsArr[i] + " - " + quantityArr[i]);
}
Run Code Online (Sandbox Code Playgroud)

它应该
打印以下结果:

Milk - 5
Bread - 2
Potato - 3
Run Code Online (Sandbox Code Playgroud)

但为什么它是打印以下结果:

Milk - 5
Bread - 2
Potato - 3
undefined - undefined
Run Code Online (Sandbox Code Playgroud)

请帮忙!

Ben*_*enM 6

数组是 0 索引的,所以最后一个元素的索引总是length - 1。因此,您应该按如下方式更新循环:

let itemsArr = ["Milk", "Bread", "Potato"];
let quantityArr = [5, 2, 3];

for (i = 0; i < itemsArr.length; i++) {
    console.log(itemsArr[i] + ' - ' + quantityArr[i]);
}
Run Code Online (Sandbox Code Playgroud)

请注意,也无需使用该if语句检查循环内部的状态,因为它的计算结果始终为真。

对于添加的点,您可以for完全删除循环,而是使用forEach

let itemsArr = ["Milk", "Bread", "Potato"];
let quantityArr = [5, 2, 3];

itemsArr.forEach((item, i) => {
  console.log(`${item} - ${quantityArr[i]}`);
});
Run Code Online (Sandbox Code Playgroud)

  • 你甚至可以使用 forEach 代替 map 因为你没有返回任何东西:) (4认同)