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