【问题标题】:JavaScript Objects built on arrays [duplicate]基于数组构建的 JavaScript 对象 [重复]
【发布时间】:2019-04-21 17:37:59
【问题描述】:

根据我的阅读,在 JavaScript 中:

Objects = Hash Tables,建立在数组之上。但是,通常说数组是 JS 中的对象。这两个概念如何协调?

【问题讨论】:

  • 对象不是建立在数组之上的——相反。
  • 也许你的意思是:typeof []; //returns object 或者这个new String() 我宁愿说 JS 中的一切都是建立在对象之上的。
  • myArr = ['this', 'is', 'an', 'array'] 实际上是{ 0: 'this', 1: 'is', 2: 'an', 3: 'array' } 在幕后。

标签: javascript arrays hash hashtable javascript-objects


【解决方案1】:

对象不是建立在数组上的。对象有自己的优化。

一般:

  • 对象用于“结构”、可预测“形状”的结构和预先知道的键(即使它们可以与动态键一起使用,您也应该为此使用地图。见下文)。
  • 数组用于列表(以及队列和堆栈)、键为数字的结构或元素顺序很重要的结构。数组是“特殊”对象,而不是相反。 (您可以将基于字符串的属性放在数组上,就像任何对象一样。但请不要这样做)。
  • Maps 用于哈希表/字典,其键是动态的且事先不知道的结构。

【讨论】:

    猜你喜欢
    • 2021-03-29
    • 1970-01-01
    • 2020-04-15
    • 2021-08-31
    • 2013-03-13
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 2018-05-01
    相关资源
    最近更新 更多