reduce的方法
reduce使用场景非常多,使用频率非常高,这里介绍reduce的基本功能与函数重构,同时还是高阶函数
完成fliter等功能。
//reduce的基础用法
//如果没有初始值,第一次遍历时value为数组第0项,item从下标1开始遍历
//从第二次开始value就是上一次使用return返回的值
//归并;value和item归 然后并
//如果有初始值,item从0开始遍历,value开始为初始值
//reduce可以完成filter,every等功能;
var arr=[2,34,6,8,9,92,1];
var item=arr.reduce(function(value,item,index,arr){
console.log(value,item,arr);
return value+item;
},100)
console.log=(item);
//重构reduce
function reduce(arr,fn,initValue){
if(arr.length===0) return;
if(initValue=undefined){ initValue=arr[0];
i=1;
}
for(;i<arr.length;i++){
if(!(i in arr)) continue;
initValue=fn(initValue,arr[i],i,arr);
}
return initValue;
}
var value=reduce(arr,function(value,item,index){
return value+item;
},100)
console.log(value);