Groups an array/object by property values or callback
Works like group-by or lodash.groupBy, but also:
nestBy(object or array, property, [...properties])
list =
[ { name: 'Marge', gender: 'f' },
{ name: 'Homer', gender: 'm' },
{ name: 'Bart', gender: 'm' } ]
result = nestBy(list, 'gender')
// { f: [ { name: 'Marge', gender: 'f' } ],
// m: [ { name: 'Homer', gender: 'm' },
// { name: 'Bart', gender: 'm' } ] }
list =
{ marge: { name: 'Marge', gender: 'f' },
homer: { name: 'Homer', gender: 'm' },
bart: { name: 'Bart', gender: 'm' } }
var result = nestBy(list, 'gender')
// f:
// marge: { name: 'Marge', gender: 'f' }
// m:
// homer: { name: 'Homer', gender: 'm' }
// bart: { name: 'Bart', gender: 'm' }
list =
[ { name: 'Marge', gender: 'f' },
{ name: 'Homer', gender: 'm' },
{ name: 'Bart', gender: 'm' } ]
result = nestBy(list, 'gender', 'name')
// f:
// 'Marge':
// [ { name: 'Marge', gender: 'f' } ]
// m:
// 'Homer':
// [ { name: 'Homer', gender: 'm' } ]
// 'Bart':
// [ { name: 'Bart', gender: 'm' } ]
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