Javascript 对于未定义的循环';错误';
我要做的是将空数组记录为for循环中的years数组。这些年的表现非常好,但我一直在控制台的末尾得到Javascript 对于未定义的循环';错误';,javascript,arrays,for-loop,console.log,Javascript,Arrays,For Loop,Console.log,我要做的是将空数组记录为for循环中的years数组。这些年的表现非常好,但我一直在控制台的末尾得到未定义的。有人能给我解释一下为什么会这样吗 p.S-自学成才的开发者,所以请容忍我,谢谢 var empty = []; var years = [1996, 1997, 2001, 1975, 1943]; for(var empty = 0; empty <= years.length; empty++) { console.log(years[empty]); } var
未定义的
。有人能给我解释一下为什么会这样吗
p.S-自学成才的开发者,所以请容忍我,谢谢
var empty = [];
var years = [1996, 1997, 2001, 1975, 1943];
for(var empty = 0; empty <= years.length; empty++) {
console.log(years[empty]);
}
var empty=[];
风险值年份=[1996、1997、2001、1975、1943];
对于(var empty=0;empty在上一次迭代中,您的empty===5
,因此5是一个数组
,您从索引开始到0
,然后一个接一个地到达数组的长度
var arr = ['a', 'b', 'c', 'd', 'e']
现在这个数组包含5个元素
。如果你从0
开始计算,你的第五个元素索引
是4
。但是在你的循环
中,当索引是5时,你就破坏了它。因为索引5
上没有元素,你得到了未定义的错误
解决方案
在这里,您可以检查索引是否为,这里有一个解决方案:
var empty = [];
var years = [1996, 1997, 2001, 1975, 1943];
for(var empty = 0; empty < years.length; empty++) {
console.log(years[empty]);
}
var empty=[];
风险值年份=[1996、1997、2001、1975、1943];
对于(var empty=0;empty
您说您正在学习,请查找为什么数组索引以0开头。您会看到未定义的
,因为您正在枚举数组的长度
--
尝试以下新语法:
const years = [1996, 1997, 2001, 1975, 1943];
for(let year of years) {
console.log(year);
}
或功能样式,请参见Array.prototype.map
years.map(year => console.log(year))
由于您有空,变量empy
被定义了两次,首先是数组,然后是数字。(空不是个好名字。在for循环中,您可以使用index、idx或i)。您的年长是5个元素,第一个元素位于索引0,因此只定义了索引0到4,而不是索引5。更改