Spaces:
Runtime error
Runtime error
// Inspired by Underscore's groupBy: | |
// http://documentcloud.github.com/underscore/#groupBy | |
; | |
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; | |
}; | |