nest-by
Groups an array/object by property values or callback
Works like group-by or lodash.groupBy, but also:
- can nest recursively
- works with objects as well as arrays

Usage
nestBy(object or array, property, [...properties])
Arrays
list =
[ { name: 'Marge', gender: 'f' },
{ name: 'Homer', gender: 'm' },
{ name: 'Bart', gender: 'm' } ]
result = nestBy(list, 'gender')
Objects
list =
{ marge: { name: 'Marge', gender: 'f' },
homer: { name: 'Homer', gender: 'm' },
bart: { name: 'Bart', gender: 'm' } }
var result = nestBy(list, 'gender')
Recursive
list =
[ { name: 'Marge', gender: 'f' },
{ name: 'Homer', gender: 'm' },
{ name: 'Bart', gender: 'm' } ]
result = nestBy(list, 'gender', 'name')
Thanks
nest-by © 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