在JavaScript中,这是向数组添加新元素的更有效方法吗?

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