UNPKG

tastypie

Version:

Tastypie is a webservice API framework for Node.js based on Django's Tastypie Framework. It provides a convenient, yet powerful and highly customizable, abstraction for creating REST-style interfaces

31 lines (24 loc) 764 B
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;