1234567891011121314151617181920212223 |
- import arrayAggregator from './_arrayAggregator.js';
- import baseAggregator from './_baseAggregator.js';
- import baseIteratee from './_baseIteratee.js';
- import isArray from './isArray.js';
- /**
- * Creates a function like `_.groupBy`.
- *
- * @private
- * @param {Function} setter The function to set accumulator values.
- * @param {Function} [initializer] The accumulator object initializer.
- * @returns {Function} Returns the new aggregator function.
- */
- function createAggregator(setter, initializer) {
- return function(collection, iteratee) {
- var func = isArray(collection) ? arrayAggregator : baseAggregator,
- accumulator = initializer ? initializer() : {};
- return func(collection, setter, baseIteratee(iteratee, 2), accumulator);
- };
- }
- export default createAggregator;
|