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 }]
// }