首页 > 解决方案 > 项目的对象或数组

问题描述

我有两种变体可以处理充满数据的对象:

let global_obj = {
    "id0": { /*big object 0*/},
    "id1": { /*big object 1*/},
    "id2": { /*big object 2*/}
};

和:

let global_arr = [
    { id: "id0" /*big object 0*/},
    { id: "id1" /*big object 1*/},
    { id: "id2" /*big object 2*/}
];

因此,我可以将充满数据的大对象保存在全局数组或全局对象中。哪种方式在性能方面更好(循环、删除、添加新对象)?

我将经常通过它们的 id 来处理特定对象,更改对象的属性,循环处理它们。

标签: javascript

解决方案


在这种情况下,我会使用一个对象,因为通过id查找元素更容易/更快。如果元素的索引/顺序很重要,对象在这里没有帮助,您需要使用数组。

基本上:

  • 对象:键控集合
  • 数组:有序集合

但如果环境支持 ES2015,常规对象和数组并不是唯一的选择。ES2015 引入了几个用于处理集合的 API:Map、Set、WeakMap 和 WeakSet


推荐阅读