我有以下对象数组:
const dataSet = [
{
createdOn: '2020-06-01',
id: 1,
value: 12
},
{
createdOn: '2020-06-01',
id: 2,
value: 23
},
{
createdOn: '2020-06-02',
id: 3,
value: 40
},
{
createdOn: '2020-06-03',
id: 4,
value: 15
}
]
我希望能够返回的是以下内容:
[
{
createdOn: '2020-06-01',
value: 35 // sum of 12 + 23
},
{
createdOn: '2020-06-02',
value: 75 // sum of 35 + 40
},
{
createdOn: '2020-06-03',
value: 90 // sum of 75 + 15
}
]
因此,我所追求的结果是:
当存在两个(或多个)具有相同日期的对象时,则应将它们的 s 一起添加到该键的单个对象中。createdOn
value
createdOn
然后,每个对象也需要加在一起,从前一个对象创建一个累积的。value
value
经过一些搜索,我找到了一些代码,可以帮助我实现第一点:
dataSet.reduce((acc, cur) => {
const date = cur.createdOn
const found = acc.find(elem => elem.createdOn === date)
if (found) {
found.value += cur.value
} else {
acc.push(cur)
}
return acc
}, [])
我只是不知道如何实现累积价值部分。
提前致谢,祝您周末愉快。
紫衣仙女
浮云间
相关分类