最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2011年03月05日 13:58:18   作者:  
Array的push與unshift方法都能給當(dāng)前數(shù)組添加元素,不同的是,push是在末尾添加,而unshift則是在開頭添加。
從原理就可以知道,unshift的效率是較低的。原因是,它每添加一個(gè)元素,都要把現(xiàn)有元素往下移一個(gè)位置。但到底效率差異有多大呢?下面來測(cè)試一下。
測(cè)試環(huán)境的主要硬件:CPU T7100(1.8G);內(nèi)存4G DDR2 667;硬盤5400轉(zhuǎn)。主要軟件:操作系統(tǒng)為Windows 7;瀏覽器為Firefox 3.6.9。測(cè)試代碼:
復(fù)制代碼 代碼如下:

var arr = [ ], s = +new Date;
// push性能測(cè)試
for (var i = 0; i < 50000; i++) {
  arr.push(i);
}
console.log(+new Date - s);
s = +new Date;
arr = [ ];
// unshift性能測(cè)試
for (var i = 0; i < 50000; i++) {
  arr.unshift(i);
}
console.log(+new Date - s);

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

for (var i = 0; i < 50000; i++) {
  arr.push(i);
}
arr.reverse();

reverse的性能又如何呢,下面再來測(cè)試:
復(fù)制代碼 代碼如下:

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性能極高,甚至于沒有額外的消耗,可以放心使用。

相關(guān)文章

最新評(píng)論

邵阳市| 甘泉县| 武陟县| 峨眉山市| 东光县| 神木县| 同江市| 灵武市| 镶黄旗| 四会市| 饶阳县| 朝阳县| 潮州市| 阿图什市| 虞城县| 甘泉县| 红河县| 同仁县| 苍山县| 屏山县| 安西县| 鄂尔多斯市| 枣强县| 泰宁县| 阜南县| 万荣县| 类乌齐县| 堆龙德庆县| 禄劝| 兴化市| 扶余县| 涪陵区| 唐河县| 军事| 景宁| 秦安县| 沐川县| 高碑店市| 丰宁| 衡山县| 茂名市|