开发者社区> 问答> 正文

JavaScript数组中的负索引是否应有助于数组长度?

在JavaScript中,我定义了这样的数组

var arr = [1,2,3]; 我也可以

arr[-1] = 4; 现在如果我这样做

arr = undefined; 我也丢失了对arr [-1]值的引用。

因此从逻辑上来说,似乎arr [-1]也是arr的一部分。

但是当我执行以下操作时(未将arr设置为undefined)

arr.length; 返回3而不是4 ;

因此,我的观点是,如果数组可以与负索引一起使用,则这些负索引也应该是其长度的一部分**。我不知道可能是我错了,还是可能缺少一些关于数组的概念。

问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-08 19:35:37 544 0
1 条回答
写回答
取消 提交回答
  • 因此从逻辑上来说,似乎arr [-1]也是arr的一部分。

    是的,但不是您认为的那样。

    您可以为数组分配任意属性(就像JavaScript中的任何其他Object一样),这是在数组上“索引” -1并分配值时要做的事情。由于这不是数组的成员,而只是一个任意属性,因此不应期望length考虑该属性。

    换句话说,以下代码执行相同的操作:

    ​var arr = [1, 2, 3];

    ​arr.cookies = 4;

    alert(arr.length) // 3;

    2020-02-08 19:35:52
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript面向对象的程序设计 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载