Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用数组中的键合并对象的最佳方法?_Javascript_Arrays_Json_Object_Ecmascript 6 - Fatal编程技术网

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

Javascript 使用数组中的键合并对象的最佳方法?,javascript,arrays,json,object,ecmascript-6,Javascript,Arrays,Json,Object,Ecmascript 6,使用键合并数组中对象的最佳方法是什么 [ { "refr": "https://example.com/", "transactions": 1 }, { "refr": null, "pageviews": 1 }, { "refr": "https://example.com

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

[
   {
      "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键对值进行分组

常量输入=[ { 参考文献:https://example.com/, 交易:1 }, { refr:null, 浏览量:1 }, { 参考文献:https://example.com/, 浏览量:1 } ]; const groupByRefr=input.reduceac,cur=>{ acc[cur.refr]?acc[cur.refr]={…acc[cur.refr],…cur}:acc[cur.refr]=cur; 返回acc; }, {}; 常量结果=Object.valuesGroupByRef; console.logresult 使用Array.prototype.reduce,可以按refr键对值进行分组

常量输入=[ { 参考文献:https://example.com/, 交易:1 }, { refr:null, 浏览量:1 }, { 参考文献:https://example.com/, 浏览量:1 } ]; const groupByRefr=input.reduceac,cur=>{ acc[cur.refr]?acc[cur.refr]={…acc[cur.refr],…cur}:acc[cur.refr]=cur; 返回acc; }, {}; 常量结果=Object.valuesGroupByRef; console.logresult;