function reduceMe(array, iteratee, accumulator, isFirst) {
// 设置一个初始的下标,设置为-1
let index = -1;
// 设置length,当数组存在时,length为数组的长度,否则为0
const length = array === null ? 0 : array.length;
// 当isFirst为true同时length != 0 时,accumulator为数组的第一个元素
if (isFirst && length) {
accumulator = array[++index];
}
// 遍历数组 index小于length
while (++index < length) {
// 调用iteratee函数进行数据处理,
// iteratee函数参数:accumulator:起始值, array[index]为以后数组值, index为以后数组下标, 残缺数组
// 最初,将iteratee返回的值赋值给accumulator,以提供给下一次iteratee函数应用
accumulator = iteratee(accumulator, array[index], index, array);
}
// 返回最初的后果
return accumulator;
}
发表回复