国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 23:55:00
字體:
來源:轉載
供稿:網友
從原理就可以知道,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性能極高,甚至于沒有額外的消耗,可以放心使用。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 荔浦县| 西林县| 长垣县| 东乌| 抚远县| 云霄县| 云林县| 浪卡子县| 太保市| 柯坪县| 河南省| 隆德县| 水城县| 安岳县| 沁阳市| 探索| 苗栗市| 凤山县| 福鼎市| 定边县| 肇源县| 神农架林区| 满洲里市| 绥滨县| 南岸区| 武鸣县| 白水县| 特克斯县| 句容市| 扎兰屯市| 仙桃市| 招远市| 永丰县| 梨树县| 特克斯县| 漳浦县| 黄浦区| 梁平县| 东明县| 玉环县| 临颍县|