如何按值减少对象数组
How to reduce array of objects by value
我有一个这样的对象数组:
const array = [
{ someDate: "2021-01-19T14:18:20.000", count: 13},
{ someDate: "2021-01-28T12:57:15.000", count: 12},
{ someDate: "2021-01-28T12:57:15.000", count: 10},
{ someDate: "2021-01-19T14:18:20.000", count: 9},
{ someDate: "2021-02-07T10:32:37.000", count: 7},
{ someDate: "2021-02-07T10:32:37.000", count: 5},
{ someDate: "2021-01-19T14:18:20.000", count: 4}
];
如果日期相同,我想按日期减少对象并获取该日期的计数总和。这是我想要达到的结果
const array = [
{ someDate: "2021-01-19T14:18:20.000", count: 26},
{ someDate: "2021-01-28T12:57:15.000", count: 22},
{ someDate: "2021-02-07T10:32:37.000", count: 12},
];
我怎样才能做到这一点?任何示例将不胜感激!
我们的想法是跟踪您 someDate
看到的那些,然后将该记录的计数相加。
const array = [
{ someDate: "2021-01-19T14:18:20.000", count: 13},
{ someDate: "2021-01-28T12:57:15.000", count: 12},
{ someDate: "2021-01-28T12:57:15.000", count: 10},
{ someDate: "2021-01-19T14:18:20.000", count: 9},
{ someDate: "2021-02-07T10:32:37.000", count: 7},
{ someDate: "2021-02-07T10:32:37.000", count: 5},
{ someDate: "2021-01-19T14:18:20.000", count: 4}
];
const result = array.reduce((acc, current) => {
const {someDate, count} = current;
const existing = acc.find(a => a.someDate === someDate);
if (existing) {
existing.count += count;
} else {
acc.push(current);
}
return acc;
}, []);
我有一个这样的对象数组:
const array = [
{ someDate: "2021-01-19T14:18:20.000", count: 13},
{ someDate: "2021-01-28T12:57:15.000", count: 12},
{ someDate: "2021-01-28T12:57:15.000", count: 10},
{ someDate: "2021-01-19T14:18:20.000", count: 9},
{ someDate: "2021-02-07T10:32:37.000", count: 7},
{ someDate: "2021-02-07T10:32:37.000", count: 5},
{ someDate: "2021-01-19T14:18:20.000", count: 4}
];
如果日期相同,我想按日期减少对象并获取该日期的计数总和。这是我想要达到的结果
const array = [
{ someDate: "2021-01-19T14:18:20.000", count: 26},
{ someDate: "2021-01-28T12:57:15.000", count: 22},
{ someDate: "2021-02-07T10:32:37.000", count: 12},
];
我怎样才能做到这一点?任何示例将不胜感激!
我们的想法是跟踪您 someDate
看到的那些,然后将该记录的计数相加。
const array = [
{ someDate: "2021-01-19T14:18:20.000", count: 13},
{ someDate: "2021-01-28T12:57:15.000", count: 12},
{ someDate: "2021-01-28T12:57:15.000", count: 10},
{ someDate: "2021-01-19T14:18:20.000", count: 9},
{ someDate: "2021-02-07T10:32:37.000", count: 7},
{ someDate: "2021-02-07T10:32:37.000", count: 5},
{ someDate: "2021-01-19T14:18:20.000", count: 4}
];
const result = array.reduce((acc, current) => {
const {someDate, count} = current;
const existing = acc.find(a => a.someDate === someDate);
if (existing) {
existing.count += count;
} else {
acc.push(current);
}
return acc;
}, []);