【发布时间】:2018-10-21 07:46:44
【问题描述】:
我想要做的是让空数组在 for 循环中记录年数组。这些年显示得非常好,但我一直在控制台末尾收到undefined。有人可以向我解释为什么会这样吗?
P.S - 这里是自学成才的开发者,所以请多多包涵,谢谢!
var empty = [];
var years = [1996, 1997, 2001, 1975, 1943];
for(var empty = 0; empty <= years.length; empty++) {
console.log(years[empty]);
}
【问题讨论】:
-
<=... 表示空将为 0...5 ...但仅定义索引 0...4(即 5 个计数) -
因为您在最后一个循环中有
empty <= years.length,所以empty将是5。years中没有这样的索引,因此你得到undefined。 -
变量
empy被定义了两次,首先是一个数组,然后是一个数字。 (并且 empty 不是一个好名字。在 for 循环中,您可以使用 index、idx 或仅使用 i)。您的年份长度为 5 个元素,第一个元素位于索引 0,因此只定义了索引 0 到 4,而不是索引 5。将<=更改为<并按预期工作。
标签: javascript arrays for-loop console.log