ui
This commit is contained in:
+109
@@ -0,0 +1,109 @@
|
||||
# `groupBy()`
|
||||
|
||||
The groupBy method groups the collection's items into multiple collections by a given key:
|
||||
|
||||
> If you want to group the collection by keys as a plain object, see [mapToGroups](mapToGroups)
|
||||
|
||||
```js
|
||||
const collection = collect([
|
||||
{
|
||||
product: 'Chair',
|
||||
manufacturer: 'IKEA',
|
||||
},
|
||||
{
|
||||
product: 'Desk',
|
||||
manufacturer: 'IKEA',
|
||||
},
|
||||
{
|
||||
product: 'Chair',
|
||||
manufacturer: 'Herman Miller',
|
||||
},
|
||||
]);
|
||||
|
||||
const grouped = collection.groupBy('manufacturer');
|
||||
|
||||
grouped.all();
|
||||
|
||||
// {
|
||||
// IKEA: Collection {
|
||||
// items: [
|
||||
// {
|
||||
// id: 100,
|
||||
// product: 'Chair',
|
||||
// manufacturer: 'IKEA',
|
||||
// price: '1490 NOK',
|
||||
// },
|
||||
// {
|
||||
// id: 150,
|
||||
// product: 'Desk',
|
||||
// manufacturer: 'IKEA',
|
||||
// price: '900 NOK',
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// 'Herman Miller': Collection {
|
||||
// items: [
|
||||
// {
|
||||
// id: 200,
|
||||
// product: 'Chair',
|
||||
// manufacturer: 'Herman Miller',
|
||||
// price: '9990 NOK',
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// }
|
||||
```
|
||||
|
||||
In addition to passing a string key, you may also pass a callback. The callback should return the value you wish to key the group by:
|
||||
|
||||
```js
|
||||
const collection = collect([
|
||||
{
|
||||
product: 'Chair',
|
||||
manufacturer: 'IKEA',
|
||||
},
|
||||
{
|
||||
product: 'Desk',
|
||||
manufacturer: 'IKEA',
|
||||
},
|
||||
{
|
||||
product: 'Chair',
|
||||
manufacturer: 'Herman Miller',
|
||||
},
|
||||
]);
|
||||
|
||||
const grouped = collection.groupBy((item, key) => item.manufacturer.substring(0, 3));
|
||||
|
||||
grouped.all();
|
||||
|
||||
// {
|
||||
// IKE: Collection {
|
||||
// items: [
|
||||
// {
|
||||
// id: 100,
|
||||
// product: 'Chair',
|
||||
// manufacturer: 'IKEA',
|
||||
// price: '1490 NOK',
|
||||
// },
|
||||
// {
|
||||
// id: 150,
|
||||
// product: 'Desk',
|
||||
// manufacturer: 'IKEA',
|
||||
// price: '900 NOK',
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// Her: Collection {
|
||||
// items: [
|
||||
// {
|
||||
// id: 200,
|
||||
// product: 'Chair',
|
||||
// manufacturer: 'Herman Miller',
|
||||
// price: '9990 NOK',
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// }
|
||||
```
|
||||
|
||||
[View source on GitHub](https://github.com/ecrmnn/collect.js/blob/master/src/methods/groupBy.js)
|
||||
Reference in New Issue
Block a user