我无法弄清楚这段简单的代码有问题。而不是在控制台中打印整个数组,我得到了消息“ 10 undefined”。如果我将“ var i”设置为0或以下,那么一切都很好,并且我从该数字中获得了完整列表,最多为10。
当“ i”设置为大于0的数字时,为什么不起作用?用chrome浏览了我的控制台的图片,以显示它的外观:
var ar = [];
for (var i = 1; i <= 10; i++) {
ar.push(i);
console.log(ar[i]);
}
JavaScript数组索引从0而不是1开始。该.push()
方法在数组的末尾添加一个元素,如果是空数组(如循环开始时那样),则该元素将为数组元素0。
您的环插入值1
数组索引0
,该值2
在数组索引1
,和依此类推,直到所述值10
在数组索引9
。
您的每条console.log(ar[i])
语句都尝试从比最高元素索引高一个的索引中记录一个值,而这些元素将始终为undefined
。因此,控制台将值记录了undefined
十次。
您可以像这样记录数组的最后一个元素:
console.log(ar[ar.length-1]);
或者,在您(现在)知道i
比使用的索引高一的情况下.push()
:
console.log(ar[i-1]);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句