如何在 javascript 中的对象内部连接子对象数组?

How to concat sub object array inside object in javascript?

我想在 javascript 中的对象内部连接子对象数组。 我在一个对象中有一个对象数组: 我想return将部门子数组合并为一个对象数组。

var array =
    {
      "departsObjInput": { 
        "departmentRequests": [
          {
            "department": [
              [
                {
                  "groupID": "20",
                  "groupName": "Group20",
                  "requestDate": "2020-01-21",
                  "deptStatus": "PENDING"  
                },
                {
                  "groupID": "21",
                  "groupName": "Group21",
                  "requestDate": "2020-01-21",
                  "deptStatus": "PENDING"  
                },
                {
                  "groupID": "24",              
                  "groupName": "Group24",
                  "requestDate": "2020-01-21",
                  "deptStatus": "PENDING" 
                }
              ],
              [
                {
                  "groupID": "18",
                  "groupName": "Group18",
                  "requestDate": "2020-01-21",
                  "deptStatus": "PENDING"  
                },
                {
                  "groupID": "26",
                  "groupName": "Group26",
                  "requestDate": "2020-01-21",
                  "deptStatus": "PENDING"
                }
              ]
            ] 
          },
          {
            "department": [
              [
                {
                  "groupID": "90",
                  "groupName": "Group90",
                  "requestDate": "2020-01-21",
                  "deptStatus": "PENDING",
                },
                {
                  "groupID": "38",
                  "groupName": "Group38",
                  "requestDate": "2020-01-21",
                  "deptStatus": "PENDING",
                }
              ],
              [
                {
                  "groupID": "37",
                  "groupName": "Group37",
                  "requestDate": "2020-01-21",
                  "deptStatus": "PENDING",
                }
              ]
            ],
          }
        ]
      }
    }

我想像这样连接部门的子数组:

  {
  "departsObjInput": { 
    "departmentRequests": [
      {
        "department":  
          [
            {
              "groupID": "20",
              "groupName": "Group20",
              "requestDate": "2020-01-21",
              "deptStatus": "PENDING"  
            },
            {
              "groupID": "21",
              "groupName": "Group21",
              "requestDate": "2020-01-21",
              "deptStatus": "PENDING"  
            },
            {
              "groupID": "24",              
              "groupName": "Group24",
              "requestDate": "2020-01-21",
              "deptStatus": "PENDING" 
            },          
            {
              "groupID": "18",
              "groupName": "Group18",
              "requestDate": "2020-01-21",
              "deptStatus": "PENDING"  
            },
            {
              "groupID": "26",
              "groupName": "Group26",
              "requestDate": "2020-01-21",
              "deptStatus": "PENDING"
            }
          ]

      },
      {
        "department":  
          [
            {
              "groupID": "90",
              "groupName": "Group90",
              "requestDate": "2020-01-21",
              "deptStatus": "PENDING",
            },
            {
              "groupID": "38",
              "groupName": "Group38",
              "requestDate": "2020-01-21",
              "deptStatus": "PENDING",
            },           
            {
              "groupID": "37",
              "groupName": "Group37",
              "requestDate": "2020-01-21",
              "deptStatus": "PENDING",
            }
          ]
         ,
      }
    ]
  }
}

我尝试的是:

var deptItem = array.departsObjInput.departmentRequests
var merged = [].concat.apply([], deptItem);
return merged;

我尝试了其他脚本,但无法得到答案。 请帮助我找到解决方案。

提前致谢,

数组在array.departsObjInput.departmentRequests.department.

departmentRequests是数组,需要索引

array.departsObjInput.departmentRequests[i].department = [].concat(...array.departsObjInput.departmentRequests[i].department);

您只需要使用 forEach 循环访问每个 department 数组,然后使用 flat()

使其成为单个一维数组
array.departsObjInput.departmentRequests.forEach(x => {
  x.department = x.department.flat();
})

var array =
    {
      "departsObjInput": { 
        "departmentRequests": [
          {
            "department": [
              [
                {
                  "groupID": "20",
                  "groupName": "Group20",
                  "requestDate": "2020-01-21",
                  "deptStatus": "PENDING"  
                },
                {
                  "groupID": "21",
                  "groupName": "Group21",
                  "requestDate": "2020-01-21",
                  "deptStatus": "PENDING"  
                },
                {
                  "groupID": "24",              
                  "groupName": "Group24",
                  "requestDate": "2020-01-21",
                  "deptStatus": "PENDING" 
                }
              ],
              [
                {
                  "groupID": "18",
                  "groupName": "Group18",
                  "requestDate": "2020-01-21",
                  "deptStatus": "PENDING"  
                },
                {
                  "groupID": "26",
                  "groupName": "Group26",
                  "requestDate": "2020-01-21",
                  "deptStatus": "PENDING"
                }
              ]
            ] 
          },
          {
            "department": [
              [
                {
                  "groupID": "90",
                  "groupName": "Group90",
                  "requestDate": "2020-01-21",
                  "deptStatus": "PENDING",
                },
                {
                  "groupID": "38",
                  "groupName": "Group38",
                  "requestDate": "2020-01-21",
                  "deptStatus": "PENDING",
                }
              ],
              [
                {
                  "groupID": "37",
                  "groupName": "Group37",
                  "requestDate": "2020-01-21",
                  "deptStatus": "PENDING",
                }
              ]
            ],
          }
        ]
      }
    }
    
array.departsObjInput.departmentRequests.forEach(x => {
  x.department = x.department.flat();
})

console.log(array)