groupBy
数组元素分组
更新: 1970/1/1 字数: 0 字 时长: 0 分钟
说明
groupBy
是一个根据给定函数或属性对数组的元素进行分组的函数。它根据指定的函数或属性将数组中的元素分成不同的组,返回一个包含分组结果的对象。
参数
参数 | 描述 |
---|---|
arr | 需要分组的数组,类型为 Array<T> 。 |
key | 用于分组的函数或属性名。类型为 `(item: T) => string |
返回值
- 返回一个对象
Record<string | number, Array<T>>
,其中键是分组的依据(可以是字符串或数字),值是属于该组的元素数组。
示例
javascript
import { groupBy } from 'uviewos';
// 示例数据
const arr = [
{ id: 1, category: 'A', value: 10 },
{ id: 2, category: 'B', value: 20 },
{ id: 3, category: 'A', value: 30 },
{ id: 4, category: 'B', value: 40 },
{ id: 5, category: 'A', value: 50 }
];
// 根据 category 属性分组
const groupedByCategory = groupBy(arr, 'category');
console.log(groupedByCategory);
// 输出:
// {
// A: [
// { id: 1, category: 'A', value: 10 },
// { id: 3, category: 'A', value: 30 },
// { id: 5, category: 'A', value: 50 }
// ],
// B: [
// { id: 2, category: 'B', value: 20 },
// { id: 4, category: 'B', value: 40 }
// ]
// }
// 使用函数进行分组
const groupedByValue = groupBy(arr, item => item.value > 25 ? 'high' : 'low');
console.log(groupedByValue);
// 输出:
// {
// low: [
// { id: 1, category: 'A', value: 10 },
// { id: 2, category: 'B', value: 20 }
// ],
// high: [
// { id: 3, category: 'A', value: 30 },
// { id: 4, category: 'B', value: 40 },
// { id: 5, category: 'A', value: 50 }
// ]
// }