有一个像这样的对象数组:
[{"event_id":1,"person":"John"},
{"event_id":2,"person":"John"},
{"event_id":3,"person":"Mike"},
{"event_id":1,"person":"Mike"},
{"event_id":1,"person":"Anna"},
{"event_id":3,"person":"Anna"}]
想要的结果应该根据 event_id
将它们组合起来,并以这样的表结构显示它们:
1 John, Mike, Ana
2 John
3 Mike, Anna
每一行代表一个事件,这些行包含参与该事件的人员。 我不知道如何在 JavaScript 中做到这一点。有什么建议吗?
最佳答案
您可以使用 reduce :
const data = [
{ event_id: 1, person: 'John' },
{ event_id: 2, person: 'John' },
{ event_id: 3, person: 'Mike' },
{ event_id: 1, person: 'Mike' },
{ event_id: 1, person: 'Anna' },
{ event_id: 3, person: 'Anna' },
];
const result = data.reduce(
(acc, val) => ({
...acc,
[val.event_id]: acc[val.event_id] ? [...acc[val.event_id], val.person] : [val.person],
}),
{},
);
console.log(result);
关于javascript - 基于其中一个对象组合来自一组对象的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62933547/