编辑代码

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);