gpt4 book ai didi

javascript - 将内存预分配给对象数组

转载 作者:数据小太阳 更新时间:2023-10-29 05:52:02 29 4
gpt4 key购买 nike

我有一个数组声明为

var arr = new Array();

然后我有一组由服务器返回的对象。这个数组中的每个对象都有三个字段(总是)。我必须遍历它并有条件地添加到 arr 数组。

由于此 arr 未预先分配,因此它会影响主数组中大量数据的性能。

有什么方法可以在我获得主响应数组后预先分配 arr 数组,从而避免此性能问题?

另外,如何获取对象的大小?

谢谢。

最佳答案

假设您有 10 个对象,您要将每个对象的三个值传递给一个数组。您可以通过将整数 30 传递给 Array 构造函数来初始化长度为 30 (10*3) 的数组:

var numObjects = 10;
var myArray = new Array(3*numObjects);

请引用我的 jsperf 基准测试以获得性能提升的证明。简而言之,预调整数组大小在 Firefox 38 中快约 25%,在 Chrome 42 中快约 81%,在 Internet Explorer 11 中快约 16%。数字会因运行这些基准测试的个人经验而异,但趋势将保持一致。最佳性能将通过预先调整阵列大小来实现。
http://jsperf.com/array-growth-dynamic-vs-preset

关于此主题的更详尽的讨论已在此处的 SO 上发生
How to initialize an array's length in javascript?

关于javascript - 将内存预分配给对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30352508/

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