In JavaScript, which is the more efficient way of adding a new element to an array?
本问题已经有最佳答案,请猛点这里访问。
这是一个非常简单的问题。在将元素添加到JavaScript数组末尾时,这些表单中的任何一个都比另一个具有速度优势还是其他优化优势?或者,除了风格,这真的很重要吗?
(1)pagedata[pagedata.length]=themember;
(2)pagedata.push(成员);
测试在以下浏览器中生成了以下结果:
推送
- Google Chrome 6.0.472.63:0.4毫秒
- Mozilla火狐3.6.10:5毫秒
- Apple Safari 5.0(7533.16):2毫秒
- Internet Explorer 8:21.7毫秒
- Internet Explorer 7:66.7毫秒
- 歌剧10.62:2.7毫秒
数组[array.length]
- 谷歌Chrome 6.0.472.63:1.2毫秒
- Mozilla火狐3.6.10:0.9毫秒
- Apple Safari 5.0(7533.16):0.9毫秒
- Internet Explorer 8:10.9毫秒
- Internet Explorer 7:32.6毫秒
- 歌剧10.62:1毫秒
结果本身就说明了这一点:除了谷歌自己的浏览器外,在所有浏览器中使用一个索引都比使用推送要好。如果交叉兼容性对您来说是一个大问题,那么实用的方法就是尽可能使用一个索引。
来源:http://www.scottlogic.com/blog/2010/10/15/javascript-array-performance.html