繁体   English   中英

使用数组中的键合并对象的最佳方法?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM