gpt4 book ai didi

javascript - 将具有唯一 ID 的对象集合存储为以 ID 作为键的关联数组而不是常规数组是否存在任何缺陷?

转载 作者:行者123 更新时间:2023-11-30 08:52:25 25 4
gpt4 key购买 nike

我一直遵循 Backbone Collection 的约定,即拥有数据对象数组并使用 _.find/findWhere 等循环遍历数组,即使我没有使用 Backbone。但是,如果我知道它们是唯一的,那么将它们存储为关联数组并将 id 作为键似乎会更有效。是否有任何我没有发现的陷阱?

最佳答案

所以基本上:

var map = {};
map["someId"] = someObject;
map["someOtherId"] = someOtherObject;

// ...later to get the object:
var o = map["someId"];

如果是这样,那么“是否有任何陷阱......我没有看到”的答案是“否”:查找对象的属性是一种非常常见的操作,JavaScript 引擎可以非常快速地完成。

事实上,自normal JavaScript arrays aren't really arrays at all ,以这种方式查找事物比将它们存储在数组中并使用 forEach 或类似方法来查找它们要明显更有效。每次从数组中获取一个条目(例如,a[0] 或其他),这是一个属性访问操作,就像在对象中查找属性一样。 (事实上​​ ,这正是它的含义,除非 JavaScript 引擎知道它可以优化操作。)从新的 typed arrays 之一获取元素。更快,因为它们确实是数组(尽管搜索它们仍然很重要),但是从标准数组中获取元素是对对象的属性查找,因此您不妨只进行一次查找(在您的 map 上,使用您的 key )。


(旁注:在 JavaScript 中,通常不使用术语“关联数组”。它只是一个对象。有时您还会听到“映射”。)

关于javascript - 将具有唯一 ID 的对象集合存储为以 ID 作为键的关联数组而不是常规数组是否存在任何缺陷?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16686078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com