将JSON对象与相同的“;键”;并添加相应的“;价值”;使用JavaScript
我有以下要合并的JSON对象:将JSON对象与相同的“;键”;并添加相应的“;价值”;使用JavaScript,javascript,json,merge,key,Javascript,Json,Merge,Key,我有以下要合并的JSON对象: { "Results": [ { "Name": "NAME1", "Events": { "EVENTTYPE": "Upgrade", "STARTDATE": "2019-03-05", "ENDDATE": "2019-03-19", "EVENT_DESC": "Upgrade to A" } }, {
{
"Results": [
{
"Name": "NAME1",
"Events": {
"EVENTTYPE": "Upgrade",
"STARTDATE": "2019-03-05",
"ENDDATE": "2019-03-19",
"EVENT_DESC": "Upgrade to A"
}
},
{
"Name": "NAME3",
"Events": {
"EVENTTYPE": "Upgrade",
"STARTDATE": "2019-05-08",
"ENDDATE": "2019-05-29",
"EVENT_DESC": "Upgrade to A1"
}
},
{
"Name": "NAME3",
"Events": {
"EVENTTYPE": "Upgrade",
"STARTDATE": "2019-03-06",
"ENDDATE": "2019-03-13",
"EVENT_DESC": "Upgrade to A2"
}
}
]
}
我想合并如下内容:
{
"Results": [
{
"Name": "NAME1",
"Events": {
"EVENTTYPE": "Upgrade",
"STARTDATE": "2019-03-05",
"ENDDATE": "2019-03-19",
"EVENT_DESC": "Upgrade to A"
}
},
{
"Name": "NAME3",
"Events": [
{
"EVENTTYPE": "Upgrade",
"STARTDATE": "2019-05-08",
"ENDDATE": "2019-05-29",
"EVENT_DESC": "Upgrade to A1"
},
{
"EVENTTYPE": "Upgrade",
"STARTDATE": "2019-03-06",
"ENDDATE": "2019-03-13",
"EVENT_DESC": "Upgrade to A2"
}
]
}
]
}
键是“Name”,您可以在“Name3”下看到重复键,如何将重复键与JavaScript合并并添加相应的值?您可以尝试使用
Array\reduce
var obj={“Results”:[{“Name”:“NAME1”,“Events”:{“EVENTTYPE”:“Upgrade”,“STARTDATE”:“2019-03-05”,“ENDDATE”:“2019-03-19”,“EVENT_DESC”:“Upgrade to A”},{“Name”:“NAME3”,“Events”:{“EVENTTYPE”:“Upgrade”,“STARTDATE”:“2019-05-08”,“ENDDATE”:“2019-05-29”,“EVENT_DESC”:“Upgrade to A1”},{“Name”:“Name”:“NAME3”,“Events”:{“事件类型”:“升级”,“开始日期”:“2019-03-06”,“结束日期”:“2019-03-13”,“事件描述”:“升级到A2”}]};
Object.keys(obj.forEach)(k=>{
obj[k]=obj[k]。减少((a,b)=>{
var ind=a.map(i=>i.Name).indexOf(b.Name)
如果(ind>-1){
a[ind]['Events'].推送(b['Events'])
}否则{
ar=[];
ar.push(b['Events'])
b['Events']=ar;
a、 推动(b)
}
返回a;
},[])
});
console.log(obj);