2014-02-13 60 views
0

這是一個非常簡單的問題。將元素添加到JavaScript數組的末尾時,這些表單中的任何一個都有速度優勢還是其他優化優勢?或者它不是真的很重要,除了風格?在JavaScript中,這是向數組中添加新元素的更有效方法?

(1)pageData [pageData.length] = theMember;

(2)pageData.push(theMember);

+1

爲什麼要麻煩?你不會注意到改變,我會去2號。 –

+0

這不是關於性能,而是推動更好,看看http://stackoverflow.com/questions/1996747/add-new-value-to -an-existing-array-in-javascript – Ehsan

+0

我覺得這個問題不正確。比較單推和長指令是沒有意義的,因爲兩者都需要納秒。性能只在添加循環中的元素時很重要,在這種情況下,'push'必須針對一次添加/創建多個數組元素的函數進行衡量,例如'concat','split','match'。 – georg

回答

0

試驗取得了以下瀏覽以下結果:

的Array.push

  • 谷歌瀏覽器6.0.472.63:0.4毫秒
  • 是Mozilla Firefox 3.6.10:5 ms
  • Apple Safari 5.0(7533.16):2 ms
  • Internet Explorer 8:21.7 m小號
  • 的Internet Explorer 7:66.7毫秒
  • 歌劇10.62:2.7毫秒

陣列[array.length]

  • 谷歌瀏覽器6.0.472.63:1.2毫秒
  • Mozilla的Firefox 3.6.10:0.9 ms
  • Apple Safari 5.0(7533.16):0.9毫秒
  • 的Internet Explorer 8:10.9毫秒
  • 的Internet Explorer 7:32.6毫秒
  • 歌劇10.62:1毫秒

的結果不言自明:使用索引使用推優於每除Google之外的瀏覽器。如果交叉兼容性是你的一個重要問題,那麼功利主義方法就是儘可能使用索引。

來源:http://www.scottlogic.com/blog/2010/10/15/javascript-array-performance.html

+0

請不要使用僅鏈接的答案 - 如果鏈接中斷/頁面移動,那麼您的答案將不會被使用。 – ajtrichards

+0

儘管如此,有趣的結果。謝謝! –

相關問題