Array.prototype.myReduce=function(fn,initalValue){
//将类数组转化为数组
var arr=Array.prototype.slice.call(this);
// 设置结果值,初始值,
var res,startIndex;
//最终结果初始值,如果有initialValue,就设置,没有就取数组的数组第一个值
res=initialValue?initialValue:arr[0];
//初始值如果initalValue存在就为0,不存在就从1开始
startIndex=initalValue?0:1;
//如果有初始值,就从0开始遍历
for(var i=startIndex;i<arr.length;i++){
res.fn.call(null,res,arr[i],i,this)
}
return res;
}
var arr=[1,2,3,4];
var newArr=arr.reduce((pre,cur)=>{
return pre+cur
},5);
console.log(newArr);