比较了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方法
时间: 2024-12-25 01:42:27