首页 > 编程语言 > 详细

JS性能探讨:往数组中添加项

时间:2015-02-21 06:32:00      阅读:259      评论:0      收藏:0      [点我收藏+]

比较了4种可以向数组添加项的方法之间的性能:

使用索引器添加

console.time("index");
var a = [];
for (var i = 0, l = times; i < l; i++) {
    a[i] = i;
}
console.timeEnd("index");

使用push方法

console.time("push");
var a = [];
for (var i = 0, l = times; i < l; i++) {
    a.push(i);
}
console.timeEnd("push");

使用concat方法

console.time("concat");
var a = [];
for (var i = 0, l = times; i < l; i++) {
    a.concat(i);
}
console.timeEnd("concat");

使用concat方法,参数为数组

console.time("concat with array");
var a = [];
for (var i = 0, l = times; i < l; i++) {
    a.concat([i]);
}
console.timeEnd("concat with array");

把times设置为10000(万)次:

index: 0.310ms
push: 1.476ms
concat: 8.911ms
concat with array: 2.261ms

把times设置为100000(十万)次:

index: 1.967ms
push: 11.980ms
concat: 70.410ms
concat with array: 28.292ms

把times设置为1000000(百万)次:

index: 138.559ms
push: 93.074ms
concat: 608.768ms
concat with array: 243.371ms

把times设置为10000000(千万)次:

index: 1473.733ms
push: 611.636ms
concat: 6058.528ms
concat with array: 2431.689ms

总结

  • concat方法的执行效率是最慢的
  • 相比两种concat方法的传参,当接受参数为数组时,执行效率要高于接受参数为非数组
  • 索引器多数情况下执行效率要高于push方法
  • 当执行次数越来越多时,索引器的执行效率开始不如push方法

JS性能探讨:往数组中添加项

原文:http://my.oschina.net/leogao0816/blog/379434

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!