1234567891011121314151617181920212223 |
- // 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 r;
- (value(this) && callable(cb));
- r = {};
- forEach.call(this, function (v) {
- var key = apply.call(cb, this, arguments);
- if (!r.hasOwnProperty(key)) r[key] = [];
- r[key].push(v);
- }, arguments[1]);
- return r;
- };
|