Subtheme of barrio
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

28 lines
614 B

// Inspired by Underscore's groupBy:
// http://documentcloud.github.com/underscore/#groupBy
"use strict";
var callable = require("../../object/valid-callable")
, value = require("../../object/valid-value")
, forEach = Array.prototype.forEach
, apply = Function.prototype.apply;
module.exports = function (cb /*, thisArg*/) {
var result;
value(this);
callable(cb);
result = Object.create(null);
forEach.call(
this,
function (item) {
var key = apply.call(cb, this, arguments);
if (!result[key]) result[key] = [];
result[key].push(item);
},
arguments[1]
);
return result;
};