gpt4 book ai didi

javascript - ES6 Map 迭代成本

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

我有一个项目数组:var treeItems = [];treeItems.length 可能是 5-30(也许是 50),但是每个 treeItem 都是相当大的对象。我应该同时执行这两件事:迭代项目并按 id 获取项目。

我正在考虑用 es6 Map 替换数组。要迭代 map ,请使用:Array.from(treeItemsMap.values()) 操作。

问题:Array.from(map.values()) 操作的成本(时间/内存)是多少?

附注我正在为移动设备做 SPA,因此内存使用量也很大。

最佳答案

spec说:

Map object must be implemented using either hash tables or other mechanisms that, on average, provide access times that are sublinear on the number of elements in the collection.

具体成本取决于实现情况。

使用Array.from只会将数据复制到数组中,这会毫无用处地浪费内存。最好迭代 map 。

注意50项是一个非常小的数据。我认为 map 上有巨大的物体并不重要。请记住,JS 是一种按值传递语言,但对于对象来说,该值是一个引用。因此, map 将仅包含 50 个对对象的引用,这些引用将被单独存储。迭代或访问那个小 map 应该不会花费太多。

关于javascript - ES6 Map 迭代成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32720855/

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