成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

PascalXie / 4136人閱讀

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

從原理就可以知道,unshift的效率是較低的。原因是,它每添加一個元素,都要把現(xiàn)有元素往下移一個位置。但到底效率差異有多大呢?下面來測試一下。
測試環(huán)境的主要硬件:CPU T7100(1.8G);內(nèi)存4G DDR2 667;硬盤5400轉(zhuǎn)。主要軟件:操作系統(tǒng)為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);

這段代碼分別執(zhí)行了50000次push和unshift操作,運行一次以后,得出結(jié)果:
12
1152
可見,unshift比push要慢差不多100倍!因此,平時還是要慎用unshift,特別是對大數(shù)組。那如果一定要達到unshift的效果,有沒有其他方法呢?答案是肯定的。
Array有一個叫做reverse的方法,能夠把一個數(shù)組反轉(zhuǎn)。先把要放進數(shù)組的元素用push添加,再執(zhí)行一次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);

結(jié)果是:
12
可見,reverse性能極高,甚至于沒有額外的消耗,可以放心使用。

當你的才華撐不起你的野心的時候、請潛下心、低下頭、好好學習、

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/97280.html

相關文章

  • js對象監(jiān)聽實現(xiàn)

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

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

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

    sutaking 評論0 收藏0
  • JS-Array

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

    madthumb 評論0 收藏0
  • 一次前端筆試總結(jié)

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

    jsdt 評論0 收藏0
  • 一次前端筆試總結(jié)

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

    GitChat 評論0 收藏0

發(fā)表評論

0條評論

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