gpt4 book ai didi

Javascript 对象与数组性能

转载 作者:行者123 更新时间:2023-11-28 19:27:39 25 4
gpt4 key购买 nike

我想保存数据并快速访问它。我的所有数据都有一个唯一的 ID。

我能想到两种可能性。

对象:

myObject[id] = myDataObject;

数组:

myArray.push(myDataObject);

对于数组,ID 将在 myDataObject 内部继承。如果我现在想根据ID来查找一些数据,我该怎么做呢?什么最快?

考虑到以下情况,什么会更快:

  1. 每次新创建时,数组都会按 myDataObject 中的 ID 排序ID 被“推送”
  2. 在数组中搜索所需的数据是通过以下方式完成的某种快速排序算法

对象如何处理这个:

var someCrazyID = 1233AFE12B00ED;
console.log(myObject[someCrazyID].attribute);

它是否会迭代整个对象,或者它是否会像我手动处理数组一样在后台执行类似的操作?

首先请仅从性能方面进行论证,最后我还想知道您的总体意见(维护等)

感谢您提前提供的帮助

最佳答案

在 JavaScript 中,对象基本上是 HashMap ,这意味着在给定键的情况下查找某个值是一个常数 O(1) 成本操作。这使得对象非常适合基于查找的功能,因此您可能希望使用对象,因此不需要排序(当然,根据定义,对象是其键值对的未排序集合),并且查找将无论如何都要快。

请注意,尽管在 JS 中数组也是对象,具有相同的查找属性,唯一的区别是它们遵循使用后续整数作为键的约定。如果您的 ID 是整数,您还可以使用 ID 作为索引来创建一种稀疏数组,但这与创建使用 ID 作为键的对象基本相同。

关于Javascript 对象与数组性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27524232/

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