当数组元素的个数为100000时,删除前10000个元素,
shift性能较高:
shitf用时0ms,而delete用了403ms;
当数组元素的个数为1000000时,删除前10000个元素,
delete性能较高:
shitf用了98105ms,deletef用时4396ms
delete删除相同数目的元素,所用时间居然跟数组长度成正比!
还是pop比较好,由于不需要移动元素,上面两种情况下用时
分别是0ms和1ms。
var a = [];输出为:
for(var i = 0; i<10000000;++i){
a[i] = i;
}
console.log(a.length);
var start = Date.now();
for(var j = 0; j<10000000; ++j){
a[j] = j+ 1;
}
var end = Date.now();
console.log(end -start);
for(var k = 0; k<10000000; k = k+ 5){
delete a[k];
}
var start = Date.now();
for(var h = 0; h<10000000; ++h){
if(a[h] !== undefined){
a[h] = h + 1;
}
}
var end = Date.now();
console.log(end -start)
10000000
21
171
可见遍历稀疏数组所用时间是普通数组的8倍以上,但这几乎在所有的互联网应用里面都不会成为
瓶颈,可以放心使用了。