You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

22 lines
684 B

4 years ago
  1. /**
  2. * A specialized version of `baseAggregator` for arrays.
  3. *
  4. * @private
  5. * @param {Array} [array] The array to iterate over.
  6. * @param {Function} setter The function to set `accumulator` values.
  7. * @param {Function} iteratee The iteratee to transform keys.
  8. * @param {Object} accumulator The initial aggregated object.
  9. * @returns {Function} Returns `accumulator`.
  10. */
  11. function arrayAggregator(array, setter, iteratee, accumulator) {
  12. var index = -1,
  13. length = array == null ? 0 : array.length;
  14. while (++index < length) {
  15. var value = array[index];
  16. setter(accumulator, value, iteratee(value), array);
  17. }
  18. return accumulator;
  19. }
  20. module.exports = arrayAggregator;