/**

* A specialized version of `baseAggregator` for arrays.
*
* @private
* @param {Array} [array] The array to iterate over.
* @param {Function} setter The function to set `accumulator` values.
* @param {Function} iteratee The iteratee to transform keys.
* @param {Object} accumulator The initial aggregated object.
* @returns {Function} Returns `accumulator`.
*/

function arrayAggregator(array, setter, iteratee, accumulator) {

var index = -1,
    length = array == null ? 0 : array.length;

while (++index < length) {
  var value = array[index];
  setter(accumulator, value, iteratee(value), array);
}
return accumulator;

}

module.exports = arrayAggregator;