欢迎来到代码驿站!

JavaScript代码

当前位置:首页 > 网页前端 > JavaScript代码

Array的push与unshift方法性能比较分析

时间:2021-04-20 08:54:20|栏目:JavaScript代码|点击:
从原理就可以知道,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性能极高,甚至于没有额外的消耗,可以放心使用。

上一篇:JS箭头函数和常规函数之间的区别实例分析【 5 个区别】

栏    目:JavaScript代码

下一篇:JavaScript 作用域链解析

本文标题:Array的push与unshift方法性能比较分析

本文地址:http://www.codeinn.net/misctech/104777.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有