Description
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.