UNPKG

@newdash/newdash

Version:

javascript/typescript utility library

26 lines (25 loc) 842 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * A specialized version of `reduce` for arrays. * * @private * @param {Array} [array] The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @param {*} [accumulator] The initial value. * @param {boolean} [initAccum] Specify using the first element of `array` as * the initial value. * @returns {*} Returns the accumulated value. */ 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; } exports.default = arrayReduce;