Javascript 按对象数组进行分组

Javascript 按对象数组进行分组,javascript,json,group-by,Javascript,Json,Group By,根据下面第一项的值,我按对象数组进行分组: const json2=[{“value”:“value1”,“metric”:1},{“value”:“value1”,“metric”:2},{“value”:“value3”,“metric”:0},{“value”:“value2”,“metric”:4},{“value”:“value3”,“metric”:1},{“value”:“value3”,“metric”:1}]; constresult2=[…json2.reduce((r,o

根据下面第一项的值,我按对象数组进行分组:

const json2=[{“value”:“value1”,“metric”:1},{“value”:“value1”,“metric”:2},{“value”:“value3”,“metric”:0},{“value”:“value2”,“metric”:4},{“value”:“value3”,“metric”:1},{“value”:“value3”,“metric”:1}];
constresult2=[…json2.reduce((r,o)=>{
常数键=o值;
const item=r.get(key)| | Object.assign({},o{
公制:0,
});
项目.公制+=o.公制;
返回r.set(键、项);
},新映射)。值();

console.log(result2)您可以通过解构获取键/值并更新结果集

var数据=[{value:“value1”,formattedValue:“value1”},{value:2831.8,formattedValue:“283180.00%”,{value:“value1”,formattedValue:“value1”},{value:349.1111111111111,formattedValue:“34911.11%”,{value:“value2”,formattedValue:“value2”},{value:3.3703703703703703703703702,formattedValue:“337.04%”,],
结果=Array.from(
数据
.减少((m,a)=>{
var[{value:key},{value}]=a,
目标=m.get(键);
如果(!target)返回m.set(key,JSON.parse(JSON.stringify(a));
目标[1]。值+=值;
目标[1]。formattedValue=`${(目标[1]。值*100)。toFixed(2)}%`;
返回m;
},新地图)
.values()
);        
控制台日志(结果)

。作为控制台包装{max height:100%!important;top:0;}
请添加想要的结果。我删除了JSON标记,因为其中没有JSON内容,只有名为
json2