interface GroupedData<T> {
[key: string]: T[];
}
function groupBy<T>(array: T[], getGroupKey: (item: T) => string): GroupedData<T> {
const groupedData: GroupedData<T> = {};
for (const item of array) {
const key = getGroupKey(item);
if (!groupedData[key]) {
groupedData[key] = [];
}
groupedData[key].push(item);
}
return groupedData;
}
interface Person {
ID: string;
Name: string;
Gender: string;
Birthday: string;
}
const data: Person[] = [
{
"ID": "1",
"Name": "张三",
"Gender": "男",
"Birthday": "2020-03-24 00:00:00"
},
{
"ID": "2",
"Name": "李四",
"Gender": "男",
"Birthday": "2020-03-23 00:00:00"
},
{
"ID": "3",
"Name": "王五",
"Gender": "男",
"Birthday": "2020-03-23 00:00:00"
},
{
"ID": "4",
"Name": "赵六",
"Gender": "男",
"Birthday": "2020-03-28 00:00:00"
},
{
"ID": "5",
"Name": "田七",
"Gender": "女",
"Birthday": "2020-03-25 00:00:00"
},
{
"ID": "6",
"Name": "王五",
"Gender": "男",
"Birthday": "2020-03-22 00:00:00"
}
];
const groupedData = groupBy(data, (item) => item.Gender);
const groupedData1 = groupBy(data, (item) => item.Gender+"_"+item.Birthday);
console.log(groupedData);
console.log(groupedData1);
ts数据分组方法
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。
推荐阅读更多精彩内容
- 2. 数组 2.1 当把一个数组赋值给另一个数组时,只要修改了其中一个数组,另一个也会修改,这是因为赋值的操作只是...
- of返回由所有参数值组成的数组(es6) 定义:返回由所有参数值组成的数组,如果没有参数,就返回一个空数组。目的:...
- pragma mark - 是一个在类内部组织代码并且帮助你分组方法实现的好办法。 我们建议使用 #pragma ...