如何按值减少对象数组

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;
}, []);