Javascript 在数组中合并和添加记录

Javascript 在数组中合并和添加记录,javascript,Javascript,假设我们有以下数组 [{ "id": "a01", "key": "k01", "value" : 100}, { "id": "a02", "key": "k02", "value" : 320}, { "id": "a02", "key": "k02", "value" : 20}, { "id": "a02", "key": "k02", "value" : 220}, { "id": "a03", "key": "k01", "value" : 120}, { "id": "a03",

假设我们有以下数组

[{ "id": "a01", "key": "k01", "value" : 100},
{ "id": "a02", "key": "k02", "value" : 320},
{ "id": "a02", "key": "k02", "value" : 20},
{ "id": "a02", "key": "k02", "value" : 220},
{ "id": "a03", "key": "k01", "value" : 120},
{ "id": "a03", "key": "k01",  "value" : 120},
{ "id": "a03", "key": "k03",  "value" : 300}]
我想创建新的数组,如下所示

[{ "id": "a01", "key": "k01", "value" : 100},
{ "id": "a02", "key": "k02", "value" : 560},
{ "id": "a03", "key": "k01", "value" : 240},
{ "id": "a03", "key": "k03",  "value" : 300}]
我想合并记录并添加具有相同ID和键的值。 情况可能会有所不同。 实现这一目标最简单的方法是什么

我试过了。在for循环中筛选以提取具有相同ID和密钥的记录, 能够将结果相加,然后将其推送到新数组中,但是我不能跳过其他记录。 有没有办法在循环过程中跳过记录? (例如,类似于循环计数器的i+过滤器darr.length而不是i++)

设x=[
{“id”:“a01”,“key”:“k01”,“value”:100},
{“id”:“a02”,“key”:“k02”,“value”:320},
{“id”:“a02”,“key”:“k02”,“value”:20},
{“id”:“a02”,“key”:“k02”,“value”:220},
{“id”:“a03”,“key”:“k01”,“value”:120},
{“id”:“a03”,“key”:“k01”,“value”:120},
{“id”:“a03”,“key”:“k03”,“value”:300}
]
设y={};
x、 forEach((val)=>{
如果(y[val.id+'.'+val.key]){
y[val.id+'\'+val.key].value=y[val.id+'\'+val.key].value+val.value;
}
否则{
y[val.id+'.'+val.key]={
“值”:val.value
}
}
})
设arr=[];
for(输入y){
让id\u key=key.split(“\u”)
arr.push({
id:id_键[0],
key:id_key[1],
值:y[key]。值
});
}

控制台日志(arr)作为一名活跃会员,你应该知道第一步是尝试一些东西。