Extend _.groupBy to support multi-key objects #216
Labels
after modules
This should be postponed until after modularization (temporary label, see #220)
enhancement
The current groupBy function only adds each Collection object to the returned hash only once.
In some case one might want to add the same object in multiple groups.
A concrete example is an object having an array property.
Basically this means replacing:
.groupBy = group(function(result, value, key) {
if (.has(result, key)) result[key].push(value); else result[key] = [value];
});
by
function addToGroup(result, value, key) {
if _.isArray(key) { .each(key, function(k) { addToGroup(result, value, k); }); return; }
if (.has(result, key)) result[key].push(value); else result[key] = [value];
});
_.groupBy = group(addToGroup);
I implemented this for my backbone collection as groupByMulti but that is rather cumbersome as I don't have access to the underscore internals, in particular the group function.
The text was updated successfully, but these errors were encountered: