Javascript 如何合并具有相同名称的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,

最初我使用的是Json数组,它是使用
下划线
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,谢谢!!