1var arrayAggregator = require('./_arrayAggregator'), 2 baseAggregator = require('./_baseAggregator'), 3 baseIteratee = require('./_baseIteratee'), 4 isArray = require('./isArray'); 5 6/** 7 * Creates a function like `_.groupBy`. 8 * 9 * @private 10 * @param {Function} setter The function to set accumulator values. 11 * @param {Function} [initializer] The accumulator object initializer. 12 * @returns {Function} Returns the new aggregator function. 13 */ 14function createAggregator(setter, initializer) { 15 return function(collection, iteratee) { 16 var func = isArray(collection) ? arrayAggregator : baseAggregator, 17 accumulator = initializer ? initializer() : {}; 18 19 return func(collection, setter, baseIteratee(iteratee, 2), accumulator); 20 }; 21} 22 23module.exports = createAggregator; 24