nest-by-tuple
Groups an array/object by property values or callback and supports additional metadata
Works like nest-by, but allows you to embed more metadata. Also see group-by or lodash.groupBy.
Usage
property
is typically a function that returns an array in the structure of:
[ indexString, metadata ]
Where indexString
is a string that the group will be indexed by, and
metadata
will be an Object that has data about that group.
Arrays
genders = m: 'Male' f: 'Female' list = name: 'Marge' gender: 'f' name: 'Homer' gender: 'm' name: 'Bart' gender: 'm' result = // f:// genderName: 'Famale',// values: [ { name: 'Marge', gender: 'f' } ]// m:// genderName: 'Male',// values: [// { name: 'Homer', gender: 'm' },// { name: 'Bart', gender: 'm' } ]
Objects
list = marge: name: 'Marge' gender: 'f' homer: name: 'Homer' gender: 'm' bart: name: 'Bart' gender: 'm' var result = // f:// genderName: 'Famale',// values: // marge: { name: 'Marge', gender: 'f' }// m:// genderName: 'Male',// values:// homer: { name: 'Homer', gender: 'm' }// bart: { name: 'Bart', gender: 'm' }
Recursive
Yes, recursion is supported by passing in more property
parameters.
Thanks
nest-by-tuple © 2015+, Rico Sta. Cruz. Released under the MIT License.
Authored and maintained by Rico Sta. Cruz with help from contributors (list).
ricostacruz.com · GitHub @rstacruz · Twitter @rstacruz