我有一个类似下面的数组,我将从MongoDB中获取它:
[
{date: '2019-10-05', score: 3},
{date: '2019-10-05', score: 5},
{date: '2019-10-06', score: 4},
{date: '2019-10-06', score: 1},
]
我需要制作一个新数组,如下所示:
[
{date: '2019-10-05', score: [3,5]},
{date: '2019-10-06', score: [4,1]}
]
根据日期属性将分数基本分组到相同的数组中。任何实现此目的的建议都值得赞赏。
答案 0 :(得分:1)
您可以使用.reduce()
和Object.values()
获得所需的输出:
const data = [
{date: '2019-10-05', score: 3}, {date: '2019-10-05', score: 5},
{date: '2019-10-06', score: 4}, {date: '2019-10-06', score: 1},
];
const result = Object.values(
data.reduce((r, c) => {
r[c.date] = r[c.date] || {...c, score: []};
r[c.date].score.push(c.score);
return r;
}, {})
);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }