【问题标题】:Javascript array alllocation [duplicate]Javascript数组分配[重复]
【发布时间】:2016-07-16 12:16:31
【问题描述】:

我正在处理一个问题,到了我认为可以将实体实例的 Id 用作数组索引以便于查找的地步。

var myArray = [];
myArray[obj.Id] = true;

假设 obj.Id 在这里是 1000,那么 myArray.length 也是如此。我是在这里为单个布尔值分配 1000 个字节还是只是将最大索引作为长度返回?

【问题讨论】:

  • 为什么不使用键值样式对象,var myArray = {}; myArray[obj.Id] = true;
  • 它是“将最大索引作为长度返回”,但是稀疏数组会减慢[].map()for(i=0;i<myArray.length;i++) 样式的循环...

标签: javascript


【解决方案1】:

它不会分配这么多字节。

但你真正要找的是一个键值对象,比如

var myObj = {};
myObj[obj.Id] = true;
//then to access
console.log(myObj[obj.Id])

【讨论】:

  • 谢谢。是的,我最终确实使用了对象方法。我只是想知道数组空间分配是否基于索引。
  • 你能解释一下为什么使用对象而不是数组是更好的方法吗?
猜你喜欢
  • 2014-12-31
  • 2012-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-14
  • 2014-05-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多