arr.reduce()函数的简易实现
Array.reduce()api是ES6新增的数组元素求和方法,下面是它的简易实现。
let arr = [1, 2, 4]
arr.reduce((prev, cur) => {
return left + right
}, 0) // 求和得7
// 简单实现Array.reduce方法:
Array.prototype._reduce = function(callback, start) {
let prev
if(start === undefined) {//可能未初始值参数,如果未传参就是默认初始值为0
prev = 0
} else {
prev = start
}
for (let i = 0; i < this.length; i++) {//其实this就是指调用的那个数组
prev = callback(prev, this[i])//调用传过来的回调函数,会返回prev + this[i]的和然后重新赋值给prev,这样就实现了数组前面项元素的和
}
return prev
}
console.log([1,3,4]._reduce((prev, cur) => {
return prev + cur
}, 0))