📜  Collect.js groupBy() 方法(1)

📅  最后修改于: 2023-12-03 15:14:12.513000             🧑  作者: Mango

Collect.js groupBy() 方法介绍

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() 方法将集合进行封装。