What is lodash.groupby?
The lodash.groupby npm package is a utility that allows for the grouping of collection items based on a specified criterion. This can be particularly useful for organizing data, performing aggregations, or simplifying complex collections of objects or arrays by categorizing them into groups.
What are lodash.groupby's main functionalities?
Grouping by property
This feature allows grouping of objects in an array by a specific property. In the provided code, objects are grouped by their 'age' property.
_.groupBy([{ 'age': 23 }, { 'age': 24 }], 'age')
Grouping by computed criterion
This demonstrates grouping elements of an array by a computed criterion, in this case, rounding down the numbers to the nearest whole number using Math.floor.
_.groupBy([6.1, 4.2, 6.3], Math.floor)
Grouping by property path
This feature allows for grouping by nested object properties, specified by a path. Here, objects are grouped based on the 'age' property nested under 'user'.
_.groupBy([{ 'user': { 'age': 23 } }, { 'user': { 'age': 24 } }], 'user.age')
Other packages similar to lodash.groupby
underscore
Underscore is a utility library with similar functionalities to lodash, including a groupBy function. While it offers similar grouping capabilities, lodash is generally considered to have better performance and a more extensive API.
collect.js
Collect.js provides a convenient wrapper for working with arrays and objects, including a groupBy method similar to lodash's. It is heavily inspired by Laravel's Collections. Unlike lodash, it is tailored more towards a fluent API that mimics Laravel's collection methods.
lodash.groupby v4.6.0
The lodash method _.groupBy
exported as a Node.js module.
Installation
Using npm:
$ {sudo -H} npm i -g npm
$ npm i --save lodash.groupby
In Node.js:
var groupBy = require('lodash.groupby');
See the documentation or package source for more details.