将具有父子关系的对象数组与具有子值的另一个对象数组合并

时间:2019-05-24 06:33:41

标签: javascript jquery es6-modules

将具有父级和子级关系的对象数组与仅具有子值的另一个对象数组合并,以获取合并了两个值的对象的结果数组

我有一个带有父子值的对象数组

       submenu:[ {
            text: 'Publisher Site',
            permissionId : 901
        },
        {
            text: 'Track Disable',
            permissionId : 902
        }
        ]

和另一个带有子值的对象数组

   submenu : [{ 
    text: 'Website',
    permissionId : 900,
    submenu:  [{
            text: 'Publisher Site',
            permissionId : 901
        },
        {
            text: 'Track Disable',
            permissionId : 902
        }
        ]
     } ]

我们需要像这样的结果对象数组

p = ('test2')

1 个答案:

答案 0 :(得分:0)

我已经在a和b变量中使用了两个对象。

a = { submenu : [{
    text: 'Website',
    permissionId : 900,
    submenu:[{
            text: 'Publisher Site',
            permissionId : 901
        },

        {
            text: 'Track Disable',
            permissionId : 902
        },

        {
            text: 'Goals',
            permissionId : 904
        }]
}] }

b = {
submenu:[ {
            text: 'Publisher Site',
            permissionId : 901
        },
        {
            text: 'Track Disable',
            permissionId : 902
        }
        ]
}
var c = b.submenu;
   a.submenu[0].submenu = a.submenu[0].submenu.filter((elm)=> c.find(e=>e.permissionId == elm.permissionId));
console.log(a);

输出-

submenu: Array(1)
0:
permissionId: 900
submenu: Array(2)
0: {text: "Publisher Site", permissionId: 901}
1: {text: "Track Disable", permissionId: 902}
length: 2
__proto__: Array(0)
text: "Website"
__proto__: Object
length: 1
__proto__: Array(0)
__proto__: Object