【发布时间】:2012-11-11 04:07:55
【问题描述】:
我正在学习 Javascript。作为学习的一部分,我遇到了以下场景,我希望 a1.length(代码的最后一行)显示 201,但它显示 101,有什么想法吗?
var a1 = new Array();
for (var i = -100; i<=100; i++)
a1[i] = i;
for (var i in a1)
{
document.write(i + "=" + a1[i])
document.write("<br>");
}
document.write(a1.length);
【问题讨论】:
-
.length中计数的数组索引从 0 开始。负索引被认为是对象的属性,而不是数组值。 -
这就澄清了。谢谢 jfriend00。
-
使用
for (var i in a1)遍历数组是非常不合适的。永远不要使用这种循环来遍历数组 - 始终使用for(var i = 0; i < arr.length; i++)并避免诸如负索引之类的事情。根据定义,数组的元素从0到length-1 -
您永远不需要数组上的负索引。查看this question 了解替代策略
标签: javascript