Javascript如何根据匹配的id将一个数组的值插入另一个数组?

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:[]},

我有两个包含不同值的javascript数组:

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;