摘要:從原理就可以知道,的效率是較低的。那如果一定要達到的效果,有沒有其他方法呢答案是肯定的。有一個叫做的方法,能夠把一個數組反轉。比如的性能又如何呢,下面再來測試結果是可見,性能極高,甚至于沒有額外的消耗,可以放心使用。
從原理就可以知道,unshift的效率是較低的。原因是,它每添加一個元素,都要把現有元素往下移一個位置。但到底效率差異有多大呢?下面來測試一下。
測試環境的主要硬件:CPU T7100(1.8G);內存4G DDR2 667;硬盤5400轉。主要軟件:操作系統為Windows 7;瀏覽器為Firefox 3.6.9。測試代碼:
var arr = [ ], s = +new Date; // push性能測試 for (var i = 0; i < 50000; i++) { arr.push(i); } console.log(+new Date - s); s = +new Date; arr = [ ]; // unshift性能測試 for (var i = 0; i < 50000; i++) { arr.unshift(i); } console.log(+new Date - s);
這段代碼分別執行了50000次push和unshift操作,運行一次以后,得出結果:
12
1152
可見,unshift比push要慢差不多100倍!因此,平時還是要慎用unshift,特別是對大數組。那如果一定要達到unshift的效果,有沒有其他方法呢?答案是肯定的。
Array有一個叫做reverse的方法,能夠把一個數組反轉。先把要放進數組的元素用push添加,再執行一次reverse,就達到了unshift的效果。比如:
for (var i = 0; i < 50000; i++) { arr.push(i); } arr.reverse(); //reverse的性能又如何呢,下面再來測試: var arr = [ ], s = +new Date; for (var i = 0; i < 50000; i++) { arr.push(i); } arr.reverse(); console.log(+new Date - s);
結果是:
12
可見,reverse性能極高,甚至于沒有額外的消耗,可以放心使用。
當你的才華撐不起你的野心的時候、請潛下心、低下頭、好好學習、
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/97280.html
摘要:數組則在對象監聽之外額外在數組對象上的原型鏈上加一層原型對象來攔截掉等方法然后在執行預設的回調函數最后本文有什么不完善的地方或者流程圖有待改進的地方敬請斧正。 前言 隨著前端交互復雜度的提升,各類框架如angular,react,vue等也層出不窮,這些框架一個比較重要的技術點就是數據綁定。數據的監聽有較多的實現方案,本文將粗略的描述一番,并對其中一個兼容性較好的深入分析。 實現方案簡...
摘要:刪除刪除數組元素刪除第一個元素可以看出,通過運算符刪除數組元素也有一些注意的地方。數組方法也可以用于刪除數組元素,后面講解。該方法對數組的每一項運行給定的函數,返回該函數會返回的項組成的數組。 結合《javascript高級程序設計》《javascript權威指南》《javascript語言精粹》做的一篇關于Array對象的全面解析。分為兩篇:基礎篇和擴展應用篇。 1.概念及...
閱讀 2919·2021-11-17 09:33
閱讀 1639·2021-10-12 10:13
閱讀 2462·2021-09-22 15:48
閱讀 2338·2019-08-29 17:19
閱讀 2596·2019-08-26 11:50
閱讀 1572·2019-08-26 10:37
閱讀 1738·2019-08-23 16:54
閱讀 2925·2019-08-23 14:14