[英]Best way to merge objects using key in an array?
使用键合并数组中对象的最佳方法是什么?
[
{
"refr": "https://example.com/",
"transactions": 1
},
{
"refr": null,
"pageviews": 1
},
{
"refr": "https://example.com/",
"pageviews": 1
}
]
使用“refr”键的期望结果:
[
{
"refr": "https://example.com/",
"transactions": 1,
"pageviews": 1
},
{
"refr": null,
"pageviews": 1
},
]
我正在寻找一种不使用任何第三方工具(如 lodash)的解决方案。
使用Array.prototype.reduce
,您可以通过refr
键对值进行分组。
const input = [ { "refr": "https://example.com/", "transactions": 1 }, { "refr": null, "pageviews": 1 }, { "refr": "https://example.com/", "pageviews": 1 } ]; const groupByRefr = input.reduce((acc, cur) => { acc[cur.refr]? acc[cur.refr] = {...acc[cur.refr], ...cur }: acc[cur.refr] = cur; return acc; }, {}); const result = Object.values(groupByRefr); console.log(result);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.