📅  最后修改于: 2023-12-03 14:40:09.554000             🧑  作者: Mango
Collect.js
mapToGroups() 方法mapToGroups()
方法是 Collect.js
库中的一个非常有用的方法,它允许程序员通过指定的键将集合分组,并将每个分组中的值映射到新的集合。
collect(collection).mapToGroups(callback)
collection
:要进行分组操作的原始集合。callback(value, key)
:一个回调函数,接收当前遍历到的值和键作为参数,返回一个包含键值对的数组或对象,用于分组和映射。mapToGroups()
方法返回一个新的集合,其中包含按指定键分组,并通过回调函数映射的值。
假设我们有一个包含用户信息的数组集合,每个用户信息包含姓名和年龄属性:
const users = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 25 },
{ name: 'Dave', age: 35 },
{ name: 'Eve', age: 30 },
];
我们可以使用 mapToGroups()
方法将用户按年龄分组,并将具有相同年龄的用户映射到新的集合中:
const groups = collect(users).mapToGroups((user) => {
return { [user.age]: user.name };
});
console.log(groups.all());
输出结果如下:
{
25: [ 'Alice', 'Charlie' ],
30: [ 'Bob', 'Eve' ],
35: [ 'Dave' ]
}
mapToGroups()
方法可以嵌套使用,即在回调函数中再次调用 mapToGroups()
方法,以实现多层分组和映射。