Sha256: deda9c9eb1da4a3aff2b008e641c1820e25e0b85f054d865265414cb3f7df3b2
Contents?: true
Size: 764 Bytes
Versions: 62
Compression:
Stored size: 764 Bytes
Contents
var forEach = require('../array/forEach'); var identity = require('../function/identity'); var makeIterator = require('../function/makeIterator_'); /** * Bucket the array values. */ function groupBy(arr, categorize, thisObj) { if (categorize) { categorize = makeIterator(categorize, thisObj); } else { // Default to identity function. categorize = identity; } var buckets = {}; forEach(arr, function(element) { var bucket = categorize(element); if (!(bucket in buckets)) { buckets[bucket] = []; } buckets[bucket].push(element); }); return buckets; } module.exports = groupBy;
Version data entries
62 entries across 62 versions & 1 rubygems