繁体   English   中英

为什么Array.length返回的数字大于实际的最高数组索引? javascript不是从0开始计数吗?

[英]Why does Array.length return a number greater than the actual highest array index? Doesn't javascript start counting from 0?

作为Array类型实例的对象的length属性设置或返回该数组中元素的数量。 该值是一个无符号的32位整数,在数值上总是大于数组中的最高索引。

 let array = [1, 2, 3]; console.log(array.length); 

输出= 3

第一个元素的索引为0。长度为元素的数量。 计数和索引无关。 如果索引从99开始但只有四个元素,则长度将不是103,而是4。同样,第一个索引是-66,并且只有6个元素,所以列表的长度将不是-60个元素。

我同意这可能会造成混淆。 也许将索引视为名称*。 因此,数组中的每个位置都有一个名称。 为了我们的方便,名称与每个元素在数组中的位置有关。

位置从0开始计数,但是元素数从1开始计数,就像玛丽在评论中所说。


*事实上,在javascript中,它们是名称,因为所有索引也是属性。

OP原件指出,以下代码在实际值为3时返回4

let array = [1, 2, 3];
console.log(array.length);

问题是,您对给定数组中项目数的.length属性与项目索引之间感到困惑。

数组的最后一个索引是2 ,因为索引从0开始...但是,长度将保持为3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM