📅  最后修改于: 2023-12-03 15:14:12.513000             🧑  作者: Mango
groupBy()
方法是 Collect.js
库的一个集合操作方法,它可以根据给定的键(属性名、方法名等)对集合中的元素进行分组并返回一个新的以分组后的键为键名,以分组后的元素为键值的集合。
collect(groupBy(key))
key
:字符串,表示要进行分组的键名,可以是对象的属性名、方法名等。返回一个以分组后的键为键名,以分组后的元素为键值的集合。
假设有如下数组:
const users = [
{ name: 'Alice', age: 21 },
{ name: 'Bob', age: 22 },
{ name: 'Cathy', age: 21 },
{ name: 'Dave', age: 24 }
];
我们可以使用 groupBy()
方法将这个数组按照年龄进行分组:
const groupedUsers = collect(users).groupBy('age').all();
console.log(groupedUsers);
输出结果为:
{
'21': [
{ name: 'Alice', age: 21 },
{ name: 'Cathy', age: 21 }
],
'22': [
{ name: 'Bob', age: 22 }
],
'24': [
{ name: 'Dave', age: 24 }
]
}
我们也可以将其它形式的集合进行分组,比如对象:
const data = {
a: { name: 'Alice', age: 21 },
b: { name: 'Bob', age: 22 },
c: { name: 'Cathy', age: 21 },
d: { name: 'Dave', age: 24 }
};
const groupedData = collect(data).groupBy('age').all();
console.log(groupedData);
输出结果为:
{
'21': {
a: { name: 'Alice', age: 21 },
c: { name: 'Cathy', age: 21 }
},
'22': {
b: { name: 'Bob', age: 22 }
},
'24': {
d: { name: 'Dave', age: 24 }
}
}
groupBy()
方法可以方便地对集合中的元素进行分组,并返回一个新的集合。它可以接受一个字符串作为参数,表示要进行分组的键名。使用时需要先通过 collect()
方法将集合进行封装。