Javascript 如何合并具有相同名称的JSON对象
最初我使用的是Json数组,它是使用Javascript 如何合并具有相同名称的JSON对象,javascript,json,underscore.js,lodash,Javascript,Json,Underscore.js,Lodash,最初我使用的是Json数组,它是使用下划线groupBy函数的数组对象数组,我已经分组了,每个都分组了,但是我想再次合并所有具有相同对象名称的数组,下面是我想要实现的方式,有人能帮我吗 i、 e.我在JSON数组中有相同的JSON对象具有相同的versionId,现在我想合并所有具有相同versionId的JSON对象 有人能帮忙吗?可以使用下划线或Lodash框架轻松完成 输入JSON [ { "21289": [ { "id": 255463,
下划线groupBy
函数的数组对象数组,我已经分组了,每个都分组了,但是我想再次合并所有具有相同对象名称的数组,下面是我想要实现的方式,有人能帮我吗
i、 e.我在JSON数组中有相同的JSON对象具有相同的versionId
,现在我想合并所有具有相同versionId
的JSON对象
有人能帮忙吗?可以使用下划线
或Lodash
框架轻松完成
输入JSON
[
{
"21289": [
{
"id": 255463,
"orderId": 226433,
"status": 1,
"executedOn": "25/Sep/17",
"executedBy": "Person A",
"executedByDisplay": "Person A",
"cycleId": 4042,
"cycleName": "Cycle A",
"versionId": 21289,
"versionName": "Version A",
"issueKey": "A"
},
{
"id": 255433,
"orderId": 226403,
"status": 1,
"executedOn": "25/Sep/17",
"executedBy": "Person B",
"executedByDisplay": "Person B",
"cycleId": 4041,
"cycleName": "Cycle B",
"versionId": 21289,
"versionName": "Version A",
"issueKey": "B"
},
{
"id": 255432,
"orderId": 226402,
"status": 1,
"executedOn": "25/Sep/17",
"executedBy": "Person B",
"executedByDisplay": "Person B",
"cycleId": 4041,
"cycleName": "Cycle B",
"versionId": 21289,
"versionName": "Version A",
"issueKey": "C"
}
],
"21291": [
{
"id": 252067,
"orderId": 223258,
"status": 1,
"executedOn": "12/Sep/17",
"executedBy": "Person C",
"executedByDisplay": "Person C",
"cycleId": 3985,
"cycleName": "Cycle C",
"versionId": 21291,
"versionName": "Version B",
"issueKey": "D"
},
{
"id": 252014,
"orderId": 223205,
"status": 1,
"executedOn": "12/Sep/17",
"executedBy": "Person C",
"executedByDisplay": "Person C",
"cycleId": 3985,
"cycleName": "Cycle C",
"versionId": 21291,
"versionName": "Version B",
"issueKey": "E"
},
{
"id": 252012,
"orderId": 223203,
"status": 1,
"executedOn": "11/Sep/17",
"executedBy": "Person D",
"executedByDisplay": "Person D",
"cycleId": 3985,
"cycleName": "Cycle C",
"versionId": 21291,
"versionName": "Version B",
"issueKey": "F"
}
]
},
{
"21291": [
{
"id": 251449,
"orderId": 222640,
"status": 1,
"executedOn": "31/Aug/17",
"executedBy": "Person E",
"executedByDisplay": "Person E",
"cycleId": 3978,
"cycleName": "Cycle D",
"versionId": 21291,
"versionName": "Version B",
"issueKey": "G"
},
{
"id": 251299,
"orderId": 222490,
"status": 1,
"executedOn": "1/Sep/17",
"executedBy": "Person F",
"executedByDisplay": "Person F",
"cycleId": 3977,
"cycleName": "Cycle E",
"versionId": 21291,
"versionName": "Version B",
"issueKey": "H"
}
],
"31457": [
{
"id": 250969,
"orderId": 222160,
"status": 1,
"executedOn": "29/Aug/17",
"executedBy": "Person G",
"executedByDisplay": "Person G",
"cycleId": 3973,
"cycleName": "Cycle F",
"versionId": 31457,
"versionName": "Version C",
"issueKey": "I"
},
{
"id": 250871,
"orderId": 222062,
"status": 1,
"executedOn": "31/Aug/17",
"executedBy": "Person D",
"executedByDisplay": "Person D",
"cycleId": 3973,
"cycleName": "Cycle F",
"versionId": 31457,
"versionName": "Version C",
"issueKey": "J"
},
{
"id": 250869,
"orderId": 222060,
"status": 1,
"executedOn": "4/Sep/17",
"executedBy": "Person H",
"executedByDisplay": "Person H",
"cycleId": 3973,
"cycleName": "Cycle F",
"versionId": 31457,
"versionName": "Version C",
"issueKey": "K"
}
]
}
]
根据需要输出JSON
[
{
"21289": [
{
"id": 255463,
"orderId": 226433,
"status": 1,
"executedOn": "25/Sep/17",
"executedBy": "Person A",
"executedByDisplay": "Person A",
"cycleId": 4042,
"cycleName": "Cycle A",
"versionId": 21289,
"versionName": "Version A",
"issueKey": "A"
},
{
"id": 255433,
"orderId": 226403,
"status": 1,
"executedOn": "25/Sep/17",
"executedBy": "Person B",
"executedByDisplay": "Person B",
"cycleId": 4041,
"cycleName": "Cycle B",
"versionId": 21289,
"versionName": "Version A",
"issueKey": "B"
},
{
"id": 255432,
"orderId": 226402,
"status": 1,
"executedOn": "25/Sep/17",
"executedBy": "Person B",
"executedByDisplay": "Person B",
"cycleId": 4041,
"cycleName": "Cycle B",
"versionId": 21289,
"versionName": "Version A",
"issueKey": "C"
}
],
"21291": [
{
"id": 252067,
"orderId": 223258,
"status": 1,
"executedOn": "12/Sep/17",
"executedBy": "Person C",
"executedByDisplay": "Person C",
"cycleId": 3985,
"cycleName": "Cycle C",
"versionId": 21291,
"versionName": "Version B",
"issueKey": "D"
},
{
"id": 252014,
"orderId": 223205,
"status": 1,
"executedOn": "12/Sep/17",
"executedBy": "Person C",
"executedByDisplay": "Person C",
"cycleId": 3985,
"cycleName": "Cycle C",
"versionId": 21291,
"versionName": "Version B",
"issueKey": "E"
},
{
"id": 252012,
"orderId": 223203,
"status": 1,
"executedOn": "11/Sep/17",
"executedBy": "Person D",
"executedByDisplay": "Person D",
"cycleId": 3985,
"cycleName": "Cycle C",
"versionId": 21291,
"versionName": "Version B",
"issueKey": "F"
},
{
"id": 251449,
"orderId": 222640,
"status": 1,
"executedOn": "31/Aug/17",
"executedBy": "Person E",
"executedByDisplay": "Person E",
"cycleId": 3978,
"cycleName": "Cycle D",
"versionId": 21291,
"versionName": "Version B",
"issueKey": "G"
},
{
"id": 251299,
"orderId": 222490,
"status": 1,
"executedOn": "1/Sep/17",
"executedBy": "Person F",
"executedByDisplay": "Person F",
"cycleId": 3977,
"cycleName": "Cycle E",
"versionId": 21291,
"versionName": "Version B",
"issueKey": "H"
}
],
"31457": [
{
"id": 250969,
"orderId": 222160,
"status": 1,
"executedOn": "29/Aug/17",
"executedBy": "Person G",
"executedByDisplay": "Person G",
"cycleId": 3973,
"cycleName": "Cycle F",
"versionId": 31457,
"versionName": "Version C",
"issueKey": "I"
},
{
"id": 250871,
"orderId": 222062,
"status": 1,
"executedOn": "31/Aug/17",
"executedBy": "Person D",
"executedByDisplay": "Person D",
"cycleId": 3973,
"cycleName": "Cycle F",
"versionId": 31457,
"versionName": "Version C",
"issueKey": "J"
},
{
"id": 250869,
"orderId": 222060,
"status": 1,
"executedOn": "4/Sep/17",
"executedBy": "Person H",
"executedByDisplay": "Person H",
"cycleId": 3973,
"cycleName": "Cycle F",
"versionId": 31457,
"versionName": "Version C",
"issueKey": "K"
}
]
}
]
如果您知道结构与此完全相同,下面是一个非常简单的解决方案:
var a=[
{
"21289": [
{
“id”:255463,
“订单ID”:226433,
“地位”:1,
“执行日期”:“2017年9月25日”,
“执行人”:“人A”,
“executedByDisplay”:“人员A”,
“cycleId”:4042,
“循环名称”:“循环A”,
“版本ID”:21289,
“版本名称”:“版本A”,
“issueKey”:“A”
},
{
“id”:255433,
“订单ID”:226403,
“地位”:1,
“执行日期”:“2017年9月25日”,
“执行人”:“B人”,
“executedByDisplay”:“人员B”,
“cycleId”:4041,
“循环名称”:“循环B”,
“版本ID”:21289,
“版本名称”:“版本A”,
“issueKey”:“B”
},
{
“id”:255432,
“订单ID”:226402,
“地位”:1,
“执行日期”:“2017年9月25日”,
“执行人”:“B人”,
“executedByDisplay”:“人员B”,
“cycleId”:4041,
“循环名称”:“循环B”,
“版本ID”:21289,
“版本名称”:“版本A”,
“issueKey”:“C”
}
],
"21291": [
{
“id”:252067,
“订单ID”:223258,
“地位”:1,
“执行日期”:“2017年9月12日”,
“执行人”:“C人”,
“executedByDisplay”:“人员C”,
“cycleId”:3985,
“循环名称”:“循环C”,
“版本ID”:21291,
“版本名称”:“版本B”,
“issueKey”:“D”
},
{
“id”:252014,
“订单ID”:223205,
“地位”:1,
“执行日期”:“2017年9月12日”,
“执行人”:“C人”,
“executedByDisplay”:“人员C”,
“cycleId”:3985,
“循环名称”:“循环C”,
“版本ID”:21291,
“版本名称”:“版本B”,
“issueKey”:“E”
},
{
“id”:252012,
“订单ID”:223203,
“地位”:1,
“执行日期”:“2017年9月11日”,
“执行人”:“D人”,
“executedByDisplay”:“人员D”,
“cycleId”:3985,
“循环名称”:“循环C”,
“版本ID”:21291,
“版本名称”:“版本B”,
“issueKey”:“F”
}
]
},
{
"21291": [
{
“id”:251449,
“订单ID”:222640,
“地位”:1,
“执行日期”:“2017年8月31日”,
“执行人”:“E人”,
“executedByDisplay”:“个人E”,
“cycleId”:3978,
“周期名称”:“周期D”,
“版本ID”:21291,
“版本名称”:“版本B”,
“issueKey”:“G”
},
{
“id”:251299,
“订单ID”:222490,
“地位”:1,
“执行日期”:“2017年9月1日”,
“执行人”:“F人”,
“executedByDisplay”:“人员F”,
“cycleId”:3977,
“周期名称”:“周期E”,
“版本ID”:21291,
“版本名称”:“版本B”,
“issueKey”:“H”
}
],
"31457": [
{
“id”:250969,
“订单ID”:222160,
“地位”:1,
“执行日期”:“2017年8月29日”,
“执行人”:“G人”,
“executedByDisplay”:“个人G”,
“cycleId”:3973,
“循环名称”:“循环F”,
“版本ID”:31457,
“versionName”:“C版”,
“issueKey”:“我”
},
{
“id”:250871,
“订单ID”:222062,
“地位”:1,
“执行日期”:“2017年8月31日”,
“执行人”:“D人”,
“executedByDisplay”:“人员D”,
“cycleId”:3973,
“循环名称”:“循环F”,
“版本ID”:31457,
“versionName”:“C版”,
“issueKey”:“J”
},
{
“id”:250869,
“订单ID”:222060,
“地位”:1,
“执行日期”:“2017年9月4日”,
“执行人”:“H人”,
“executedByDisplay”:“人员H”,
“cycleId”:3973,
“循环名称”:“循环F”,
“版本ID”:31457,
“versionName”:“C版”,
“issueKey”:“K”
}
]
}
];
功能过滤器键(结果,obj){
for(obj中的var键){
结果[键]=(输入结果?结果[键]).concat(obj[键]):obj[键];
}
返回结果;
}
log(a.reduce(filterKeys,{}))代码>可能重复的不我已经通过这些问题,这些都没有帮助。这里我有数组,我需要通过考虑所有arrays@Batman您发布的输出json和输入json是相同的。输出json和输入json似乎是相同的…对不起,我的错误是复制粘贴错误,现在我已经正确更新了输入和输出json,谢谢!!