Javascript 如果条件匹配,则对数组中的参数求和
我有一个数组,如下所示Javascript 如果条件匹配,则对数组中的参数求和,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一个数组,如下所示 var arr = [ {'ResId':123,'ResVal':4,'Date':'11/03/2015'}, {'ResId':123,'ResVal':8,'Date':'11/03/2015'}, {'ResId':123,'ResVal':4,'Date':'13/03/2015'}, {'ResId':123,'ResVal':4,'Date':'13/03/2015'}, {'ResId':223,'ResV
var arr = [
{'ResId':123,'ResVal':4,'Date':'11/03/2015'},
{'ResId':123,'ResVal':8,'Date':'11/03/2015'},
{'ResId':123,'ResVal':4,'Date':'13/03/2015'},
{'ResId':123,'ResVal':4,'Date':'13/03/2015'},
{'ResId':223,'ResVal':4,'Date':'12/03/2015'},
{'ResId':223,'ResVal':2,'Date':'12/03/2015'},
{'ResId':223,'ResVal':4,'Date':'13/03/2015'},
{'ResId':765,'ResVal':4,'Date':'13/03/2015'}]
如果ResId和Date都匹配,我想对ResVal的值求和。
假设在上面的数组中,ResId=123和Date=11/03/2015有两个条目,那么我将把它们相加,创建一个ResId=123、Date=11/03/2015和ResVal=12的条目
我需要这是动态的,因为所有3个参数的值会一直不同
我得到的数组应该如下所示
[{'ResId':123,'ResVal':12,'Date':'11/03/2015'},
{'ResId':123,'ResVal':8,'Date':'13/03/2015'},
{'ResId':223,'ResVal':6,'Date':'12/03/2015'},
{'ResId':223,'ResVal':8,'Date':'13/03/2015'}]
此外,我还需要使用纯JS/Jquery完成此操作。这是一个带有和的提案。
var-arr=[
{'ResId':123,'ResVal':4,'Date':'11/03/2015'},
{'ResId':123,'ResVal':8,'Date':'11/03/2015'},
{'ResId':123,'ResVal':4,'Date':'13/03/2015'},
{'ResId':123,'ResVal':4,'Date':'13/03/2015'},
{'ResId':223,'ResVal':4,'Date':'12/03/2015'},
{'ResId':223,'ResVal':2,'Date':'12/03/2015'},
{'ResId':223,'ResVal':4,'Date':'13/03/2015'},
{'ResId':765,'ResVal':4,'Date':'13/03/2015'}],
减少=减少(功能(r,a){
!r.some(函数(b){
如果(a.Date==b.Date&&a.ResId==b.ResId){
b、 ResVal+=a.ResVal;
返回true;
}
})&&r.push({ResId:a.ResId,ResVal:a.ResVal,Date:a.Date});
返回r;
}, []);
document.write(''+JSON.stringify(reduced,0,4)+'')代码>你的问题是什么?JS新手,对我该怎么做感到困惑。你真的需要展示你的尝试,而不是只是来到这里告诉人们你想要什么。编程就是为了解决问题,那么你在试图解决这个问题时到底遇到了什么困难呢?这个{'ResId':223,'ResVal':8,'Date':'13/03/2015'}
的结果可能是错误的。。。