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 ...