我有一个声明为的数组
var arr = new Array();
Run Code Online (Sandbox Code Playgroud)
然后我有一个由服务器返回的对象数组.并且此数组中的每个对象都有三个字段(总是).我必须遍历这个并有条件地添加到arr数组.
由于此arr未预先分配,因此它会在主阵列中达到大量性能.
有没有什么办法可以在我获得主响应数组之后预先分配arr数组,这样我就可以避免这个性能问题?
另外我如何获得对象的大小?
谢谢.
假设您有10个对象,并且您将从每个对象传递三个值到一个数组.您可以通过将整数30传递给Array构造函数来初始化长度为30(10*3)的数组:
var numObjects = 10;
var myArray = new Array(3*numObjects);
Run Code Online (Sandbox Code Playgroud)
请参阅我的jsperf基准测试,以获得所获得的性能证明.简而言之,在Firefox 38中预先调整阵列大小要快25%,在Chrome 42中大约快81%,在Internet Explorer 11中大约快16%.数字会因个人运行这些基准测试的经验而异,但是趋势将保持一致.优化性能将来自预先调整阵列大小.
http://jsperf.com/array-growth-dynamic-vs-preset
关于如何在javascript中初始化数组的长度,在这里发生了关于这个主题的更全面的讨论
?
| 归档时间: |
|
| 查看次数: |
2725 次 |
| 最近记录: |