gpt4 book ai didi

javascript - 为什么从对象中删除比拼接数组更快?

转载 作者:行者123 更新时间:2023-12-02 14:25:15 25 4
gpt4 key购买 nike

我很好奇数组和对象之间的速度差异,因此我设置了一个测试,用于从数组和对象中填充、访问和删除 100,000 个项目。访问和填充数组大约相等,相差约 3 毫秒。然而,从数组中删除会导致 604ms 差异(10ms 与 614ms)。为什么是这样?我认为对象和数组几乎相同。

演示:https://codecanister.com/Project/b9f8de7c/1/result/

最佳答案

当您执行.splice()时,所有后续数组条目都必须重新分配。也就是说,拼接出来的属性名称之后的每一个属性名称都必须更改。除了直线遍历属性之外,没有什么好方法可以做到这一点;使该操作快速的数据结构会使其他更常见的操作变慢。

所以考虑数组[1, 2, 3, 4]。属性“0”的值为1。如果您拼接该条目,则运行时必须将属性“0”设置为 2,将属性“1”设置为 3,将属性“2”设置为 4.

关于javascript - 为什么从对象中删除比拼接数组更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38318323/

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