Adding the ability to _.groupBy(list, 'account_id')

This commit is contained in:
Jeremy Ashkenas
2011-10-21 14:44:38 -04:00
parent 00cd88cfa6
commit 96fdf6fbac
2 changed files with 10 additions and 2 deletions

View File

@@ -276,9 +276,11 @@
}), 'value');
};
// Groups the object's values by a criterion produced by an iterator
_.groupBy = function(obj, iterator) {
// Groups the object's values by a criterion. Pass either a string attribute
// to group by, or a function that returns the criterion.
_.groupBy = function(obj, val) {
var result = {};
var iterator = _.isFunction(val) ? val : function(obj) { return obj[val]; };
each(obj, function(value, index) {
var key = iterator(value, index);
(result[key] || (result[key] = [])).push(value);