猿问

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

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


[

   {

      "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)的解决方案。


慕哥6287543
浏览 93回答 1
1回答

至尊宝的传说

使用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);
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答