javascript - 根据其中一个对象组合来自一组对象的数据
问题描述
有一个这样的对象数组:
[{"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 中做到这一点。有什么建议么?
解决方案
您可以使用减少:
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);
推荐阅读
- c# - 如何将 Twilio.dll 构建为强名称程序集
- symfony-4.4 - 用户 App Entity User 没有用户提供程序 您的用户提供程序的 supportsClass() 方法不应该为这个类名返回 true 吗?
- python - 在 python 中使用“或”总是评估为真,它可能与其他条件发生冲突
- excel - 从日志文件计算时间跟踪
- azure - Azure 托管标识错误 - 找不到访问令牌的标识
- hapi - 无法在 hapi-auth-cookie 中将 isSameSite 设置为 None
- django - 带有 Swagger 或其他文档的已定义参数 (request.POST) 的 Django Rest Framework 自定义 POST URL 端点
- python - AttributeError:“DummyVecEnv”对象没有属性“形状”
- vue.js - Vuejs 路由器在不重新加载或重新渲染整个页面的情况下更新哈希值
- java - 访问作业 bean 中的作业参数