使用“ for循环”迭代数字数组

时间:2019-08-19 16:45:15

标签: javascript

我要遍历下面的数组:

var a=[1,2,3,4,5,6,0,11]

for(let value of a)
{
    console.log(a[value-1])
}

我得到的输出如下。 我找不到为什么0和11被打印为未定义的原因。

1
2
3
4
5
6
undefined
undefined

1 个答案:

答案 0 :(得分:5)

我认为这可能是对for...of的简单误解。

在每次迭代中,您都尝试访问索引为a[value-1]的项目。您的第一个undefined来自值0,您尝试在其中访问a[0-1]a[-1]。第二个来自值11,您尝试在其中访问a[11-1]a[10]

您的数组在索引-1和索引10上都没有项,因此它们都是undefined

我已经在您的代码中添加了一些日志记录,以帮助上面的解释:

var a = [1, 2, 3, 4, 5, 6, 0, 11]
for (let value of a) {
  console.log(`value is ${value}`);
  console.log(`Getting item at a[${value-1}]`);
  console.log(`Item is ${a[value - 1]}`);
  console.log(`-----`);
}
.as-console-wrapper { max-height: 100vh !important; }