Skip to content

@pmun/utils / groupBy

Function: groupBy() ​

ts
function groupBy<T, K>(array, keyFn): Record<K, T[]>;

根据条件对数组中的元素进行分组

Type Parameters ​

T ​

T

K ​

K extends string | number | symbol

Parameters ​

array ​

T[]

原始数组

keyFn ​

(item) => K

用于生成分组键的函数,接收数组元素并返回用作分组键的值

Returns ​

Record<K, T[]>

分组后的对象,键为分组键,值为对应的元素数组

Example ​

ts
const people = [
  { name: '张三', age: 25 },
  { name: '李四', age: 30 },
  { name: '王五', age: 25 },
  { name: '赵六', age: 30 }
]

// 按年龄分组
const groupedByAge = groupBy(people, person => person.age)
// 结果:
// {
//   25: [{ name: '张三', age: 25 }, { name: '王五', age: 25 }],
//   30: [{ name: '李四', age: 30 }, { name: '赵六', age: 30 }]
// }

// 使用字符串键
const groupedByAgeRange = groupBy(people, person =>
  person.age < 30 ? '青年' : '成年')
// 结果:
// {
//   '青年': [{ name: '张三', age: 25 }, { name: '王五', age: 25 }],
//   '成年': [{ name: '李四', age: 30 }, { name: '赵六', age: 30 }]
// }