Javascript如何根据匹配的id将一个数组的值插入另一个数组?
我有两个包含不同值的javascript数组:Javascript如何根据匹配的id将一个数组的值插入另一个数组?,javascript,arrays,Javascript,Arrays,我有两个包含不同值的javascript数组: var groups = [ {id: 0, name: "group1", children:[]}, {id: 1, name: "group2",children:[]}, {id: 2, name: "group3", children:[]}, {id: 3, name: "group4", children:[]},
var groups = [
{id: 0, name: "group1", children:[]},
{id: 1, name: "group2",children:[]},
{id: 2, name: "group3", children:[]},
{id: 3, name: "group4", children:[]},
]
var devices = [
{id: 0, name:"device1", groupId:0},
{id: 1, name:"device2", groupId:1},
{id: 2, name:"device3", groupId:1},
{id: 3, name:"device4", groupId:2},
]
如果设备的groupId等于组id,则将其放入其children属性中。预期结果:
groupDeviceList = [
{id: 0, name: "group1", children:[
{id: 0, name:"device1", groupId:0},
]},
{id: 1, name: "group2",children:[
{id: 1, name:"device2", groupId:1},
{id: 2, name:"device3", groupId:1},
]},
{id: 2, name: "group3", children:[
{id: 3, name:"device4", groupId:2},
]},
{id: 3, name: "group4", children:[]},
]
常量组=[
{id:0,名称:group1,子项:[]},
{id:1,名称:group2,子项:[]},
{id:2,名称:group3,子项:[]},
{id:3,名称:group4,子项:[]},
];
常数设备=[
{id:0,名称:device1,groupId:0},
{id:1,name:device2,groupId:1},
{id:2,name:device3,groupId:1},
{id:3,名称:device4,groupId:2},
]
console.loggroups.mapg=>{…g,子项:devices.filterd=>d.groupId===g.id};问题是?到目前为止,您自己尝试了什么来解决这个问题?一个循环,+.filter+.push应该可以很好地完成这项工作。我不太确定如何做到这一点,您能给出一个确切的代码示例吗?非常感谢!。如果您没有使用其返回值(console除外),则map不是正确的工具。loggroups.forEachg=>g.children=devices.filterd=>d.groupId==g.id;