# 实现reduce

function arrayReduce(array, iteratee, accumulator, initAccum) {
  let index = -1;
  const length = array == null ? 0 : array.length;
  
  if (initAccum && length) {
    accumulator = array[++index];
  }
  while (++index < length) {
    accumulator = iteratee(accumulator, array[index], index, array);
  }
  return accumulator;
}

accumulator可以用来传入初始值。

initAccum用来指定是否使用数组第一个值作为初始值。

accumulator = iteratee(accumulator, array[index], index, array);将迭代的accumulator传回函数。

从而实现ES6的reduce

最近更新时间: 2020/9/6 11:30:38