reduce 方法的实现
- 作用:
- 实现数的累加
- 如果有初始值, 那么他会以传入的初始值开始实现累加,如果没有初始值, 他会以第一项开始进行累加
- 描述:
- 接收两个参数, 第一参数是一个回调函数, 第二参数为可选项, 为累加的初始值
- 第一参数的回调函数, 四个参数, 分别为前一项、当前项、当前项索引、原数组
- 核心: 使用了循环遍历, 实现了累加
function myReduce (callback, initalVal) {
if (typeof callback !== 'function') {
throw new Error('回调函数类型错误')
}
if(initalVal){
for(let i = 0; i < this.length; i++ ) {
initalVal = callback(initalVal, this[i], i, this)
}
} else {
initalVal = this[0]
for (let i = 1; i < this.length; i++) {
initalVal = callback(initalVal, this[i], i, this )
}
}
return initalVal
}
Array.prototype.myReduce = myReduce
const result2 = [1, 2, 3, 4, 5].reduceFinal(function (pre, cur, index, arr) {
return pre + cur
}, 12)
console.log('🚀 ~ This is a result of console.log ~ ✨: ', result2);