// reduce 遍历一个数组,当前项目的返回值做为下一项遍历到的pre的输入,最后返回pre
//调用方式 其中value开始是可选的,如果没传则默认pre为第一项,value为第二项
// 累加
const arr = [1,2,3]
let res = arr.reduce((pre, value, index, arr)=>{
// 这是用户可以操作的 返回值
return pre+value
},1)
console.log(res)
Array.prototype.myreduce = function(callback,val){
let arr = this
if(val!==undefined){
pre = callback(val,arr[0],0,arr)
}else{
pre = arr[0]
}
for(let i =1; i<arr.length; i++){
pre = callback(pre,arr[i],i,arr)
}
return pre
}
const testRes = arr.myreduce(((pre, value, index, arr)=>{
return pre+value
}),1)
console.log(testRes)
console