如何在 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)
我想在 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)