3 '../function/identity',
4 '../function/makeIterator_'
5 ], function(forEach, identity, makeIterator) {
8 * Bucket the array values.
10 function groupBy(arr, categorize, thisObj) {
12 categorize = makeIterator(categorize, thisObj);
14 // Default to identity function.
15 categorize = identity;
19 forEach(arr, function(element) {
20 var bucket = categorize(element);
21 if (!(bucket in buckets)) {
25 buckets[bucket].push(element);