1 var forEach = require('../array/forEach');
2 var identity = require('../function/identity');
3 var makeIterator = require('../function/makeIterator_');
6 * Bucket the array values.
8 function groupBy(arr, categorize, thisObj) {
10 categorize = makeIterator(categorize, thisObj);
12 // Default to identity function.
13 categorize = identity;
17 forEach(arr, function(element) {
18 var bucket = categorize(element);
19 if (!(bucket in buckets)) {
23 buckets[bucket].push(element);
29 module.exports = groupBy;