TS中 对于 对象中某属性的统计
数据
const formData = [
{
"id": 4291,
"platform": "苏宁",
},
{
"id": 822,
"platform": "淘宝",
},
{
"id": 600,
"platform": "京东",
},
]
需求
- 使用ts
- 统计formData中platform的种类与数量
实现代码
type CountResult = Record<string, number>;
const platformStatistics = (data: Data[]): CountResult => {
return data.reduce((acc, cur) => {
const platform = cur.platform;
if (acc[platform]) {
acc[platform]++;
} else {
acc[platform] = 1;
}
return acc;
}, {} as CountResult);
}
说明
Reduce方法
reduce(callbackFn, initialValue)
- 第一个参数是遍历方法callbackFn,callbackFn的参数如下所示:
- acc:上一次调用callbackFn返回的结果,如果没有指定initiaValue,则为array[0]
- curr:当前元素的值
- index:curr在数组中的索引位置
- array:数组本身
- 第二个参数是初始值