# 每天一道前端面试题 # 请实现reduce方法


自己的思考:
// 第一个参数是回调函数,第二个是是否有初始值
Array.prototype.myReduce = function (callback, initialValue) {
const array = this
let acc = initialValue || array[0]
const startIndex = initialValue ? 0 : 1

// 循环迭代数组array,并把每次调用callback函数算出新的结果传入下一次for循环
for (let i = startIndex; i < array.length; i++) {
const cur = array[i]
acc = callback(acc, cur, i, array)
}
return acc
}
展开
评论