Open yinjianmin1 opened 4 years ago
Array.prototype.reduce = Array.prototype.reduce || function(fuc,init){ init = init === 'undefined' ? this[0] : init this.forEach((i,index)=>{ let reback = fun(init,i,index,this) init = reback }) return init }
形参fuc在内部拼写错误,改正后测试不通过。未考虑init不传值初始index的赋值问题
init === 'undefined' 写错了应该是 init === undefined
Array.prototype.reduce = Array.prototype.reduce || function(fuc,init){
init = init === undefined ? this[0] : init
this.forEach((i,index)=>{
let reback = fuc(init,i,index,this)
init = reback
})
return init
}
经过发现未考虑index的情况更正如下
Array.prototype.reduceTest = Array.prototype.reduceTest || function (fuc,init){
const i = init === undefined ? 1 : 0
init = init === undefined ? this[0] : init
this.slice(i).forEach((e,i) => {
const rv = fuc(init,e,i,this)
init = rv
});
return init
}