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 */
11function arrayAggregator(array, setter, iteratee, accumulator) {
12  var index = -1,
13      length = array == null ? 0 : array.length;
14
15  while (++index < length) {
16    var value = array[index];
17    setter(accumulator, value, iteratee(value), array);
18  }
19  return accumulator;
20}
21
22module.exports = arrayAggregator;
23