可以借用下面12種方法對陣列求和,建立乙個長度為10w的陣列,進行測試
具體實現:
首先建立乙個龐大的陣列:
var aarr = ;
for(var i = 0;i < 1000000;i++))
console.log('every求和: '+_sum);
console.timeend('every求和時間');
//filter
var _sum = 0;
console.time('filter求和時間');
aarr.filter(
function
(item,index))
console.log('filter求和: '+_sum);
console.timeend('filter求和時間');
//map
var _sum = 0;
console.time('map求和時間');
aarr.map(
function
(item,index))
console.log('map求和: '+_sum);
console.timeend('map求和時間');
//some
var _sum = 0;
console.time('some求和時間');
aarr.some(
function
(item,index))
console.log('some求和: '+_sum);
console.timeend('some求和時間');
//reduce
console.time('reduce求和時間');
varprev;
aarr.reduce(
function
(prev,item,index))
console.log('reduce求和: '+_sum);
console.timeend('reduce求和時間');
//reduceright
console.time('reduceright求和時間');
varnext;
aarr.reduceright(
function
(next,item,index))
console.log('reduceright求和: '+_sum);
console.timeend('reduceright求和時間');
//eval
console.time('eval求和時間');
var _sum = eval(aarr.join('+'));
console.log('eval求和: '+_sum);
console.timeend('eval求和時間');
//for
console.time('for(var i = 0,len = aarr.length;i < len;i++)求和時間');
var _sum = 0;
for(var i = 0,len = aarr.length;i < len;i++)
console.log('for求和: '+_sum);
console.timeend('for(var i = 0,len = aarr.length;i < len;i++)求和時間');
console.time('for(var i = 0;i < aarr.length;i++)求和時間');
var _sum = 0;
for(var i = 0;i < aarr.length;i++)
console.log('for求和: '+_sum);
console.timeend('for(var i = 0;i < aarr.length;i++)求和時間');
//while
console.time('while求和時間');
var _sum = 0,i = 0,_len =aarr.length;
while(i <_len)
console.log('while求和: '+_sum);
console.timeend('while求和時間');
//do while
console.time('do while求和時間');
var _sum = 0,i = 0,_len =aarr.length;
dowhile(i <_len)
console.log('do while求和: '+_sum);
console.timeend('do while求和時間');
//foreach
var _sum = 0;
console.time('foreach求和時間');
aarr.foreach(
function
(item,index))
console.log('foreach求和: '+_sum);
console.timeend('foreach求和時間');
})()
4999950000
.748046875ms
for求和: 4999950000
do while求和: 4999950000
效率最快的也就是我們用的較多的for迴圈(紅字),但是如果不注意for的優化寫法,就會導致for效能的極大降低
JS 陣列求和方法與效能比較
function sum arr function sum arr return res function sum arr function sum arr function sum arr 執行效率 引數生成const oriarr array.from new array 100000 keys...
js 陣列去重多種方法
var arr 1,2,3,2,1,2,1,34,44 方法一 利用jquery unique var newarr unique arr 方法二 利用indexof去重 var newarr for var i 0 i if newarr.indexof arr i 1 return newarr...
JS陣列去重的多種方法
解決方案 1 依次拿出陣列中的每一項 排除最後一項,最後一項後面沒有需要比較的內容 2 和當前拿出項後面的每一項依次比較 3 如果發現有重複的,我們把找到的這個重複向在原有陣列中刪除掉 方案一 雙重for 迴圈 var ary 1,2,3,2,2,7,9,2,3,5,2,8 for var i 0 ...