【问题标题】:Putting items in JavaScript arrays on arbitrary indices [duplicate]将项目放在任意索引上的 JavaScript 数组中[重复]
【发布时间】:2012-07-06 13:02:12
【问题描述】:

可能重复:
Are Javascript arrays sparse?

以下在 JavaScript 中“安全”吗? (如,可以在所有 JavaScript 引擎上可靠地工作)

a = [];
a[100] = "hello";

a[100] == "hello"; // should be true

【问题讨论】:

标签: javascript arrays


【解决方案1】:

是的。 JavaScript 中的数组是稀疏的,您的代码应该适用于所有 JavaScript 实现。

您可以在specification(PDF) 的第 15.4 节中了解要求。

简短的总结:数组是特殊对象,当在具有数字名称的属性处添加元素时(如`a [123] =“test”),它的长度属性会调整。其他方法(如 join)在操作期间会考虑长度。

【讨论】:

    【解决方案2】:

    你甚至可以假设

    a[100] === "hello"; // will return true
    

    【讨论】:

      【解决方案3】:

      是的,为什么它不起作用?它完全可以接受的语法。

      【讨论】:

      • 语法上是的,但我只是想知道在任意索引处初始化项目是否是 JavaScript 中定义明确的行为。
      • @rfw,它的定义很好,因为它在语言中是有效的,但是实现的方式可能会有所不同。另见stackoverflow.com/a/1510842/362536
      • 有很多“可接受的语法”语句是行不通的。
      猜你喜欢
      • 2016-05-27
      • 1970-01-01
      • 2019-11-11
      • 1970-01-01
      • 1970-01-01
      • 2020-06-19
      • 2019-02-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多