国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Array的push與unshift方法性能比較分析

PascalXie / 4049人閱讀

摘要:從原理就可以知道,的效率是較低的。那如果一定要達到的效果,有沒有其他方法呢答案是肯定的。有一個叫做的方法,能夠把一個數組反轉。比如的性能又如何呢,下面再來測試結果是可見,性能極高,甚至于沒有額外的消耗,可以放心使用。

從原理就可以知道,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

相關文章

  • js對象監聽實現

    摘要:數組則在對象監聽之外額外在數組對象上的原型鏈上加一層原型對象來攔截掉等方法然后在執行預設的回調函數最后本文有什么不完善的地方或者流程圖有待改進的地方敬請斧正。 前言 隨著前端交互復雜度的提升,各類框架如angular,react,vue等也層出不窮,這些框架一個比較重要的技術點就是數據綁定。數據的監聽有較多的實現方案,本文將粗略的描述一番,并對其中一個兼容性較好的深入分析。 實現方案簡...

    iamyoung001 評論0 收藏0
  • [ JS 基礎 ] Array 對象全面解析 -- 掌握基礎 ( 4 )

    摘要:刪除刪除數組元素刪除第一個元素可以看出,通過運算符刪除數組元素也有一些注意的地方。數組方法也可以用于刪除數組元素,后面講解。該方法對數組的每一項運行給定的函數,返回該函數會返回的項組成的數組。 結合《javascript高級程序設計》《javascript權威指南》《javascript語言精粹》做的一篇關于Array對象的全面解析。分為兩篇:基礎篇和擴展應用篇。 1.概念及...

    sutaking 評論0 收藏0
  • JS-Array

    摘要:沒有循環循環次四屬性屬性屬性表示數組元素的數量,的數組元素并不是連續的,有些索引的位置可能沒有元素,所以屬性并不能真正表示元素的數量,其值等于數組最大索引。 一、JS沒有真正的數組 像C++,Java這些編程語言中數組元素分配的內存都是連續,這有利于性能提升,但是JS的數組不是這樣的。它使用對象模擬數組,即對象屬性為數字,并含有length屬性。所以JS數組對象的內存不是連續的,同一般...

    madthumb 評論0 收藏0
  • 一次前端筆試總結

    摘要:另外,原題還有字數限制的,只有在字數小于并且結果正確時才可以滿分。插入節點操作的可以使用和方法,隨便用一個都行。但是,這題有兩個限制條件優雅的方式前個元素。 1.有一個長度未知的數組a,如果它的長度為0就把數字1添加到數組里面,否則按照先進先出的隊列規則讓第一個元素出隊。 分析:這道題主要是考核了數組的隊列方法和棧方法。另外,原題還有字數限制的,只有在字數小于30并且結果正確時才可以滿...

    jsdt 評論0 收藏0
  • 一次前端筆試總結

    摘要:另外,原題還有字數限制的,只有在字數小于并且結果正確時才可以滿分。插入節點操作的可以使用和方法,隨便用一個都行。但是,這題有兩個限制條件優雅的方式前個元素。 1.有一個長度未知的數組a,如果它的長度為0就把數字1添加到數組里面,否則按照先進先出的隊列規則讓第一個元素出隊。 分析:這道題主要是考核了數組的隊列方法和棧方法。另外,原題還有字數限制的,只有在字數小于30并且結果正確時才可以滿...

    GitChat 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<