У меня есть два массива объектов. Я хочу отфильтровать данные, основываясь на разрешении Obj.
Это исходит из базы данных. Вот массивы под-массивов в разрешении Obj.
let permissionObj = [
{
"Deposit": [{
label: "can create",
value: "can_create"
},
]
},
{
"Journals": [{
label: "can create",
value: "can_create"
}]
},
{
"Dashboard": [{
label: "can view",
value: "can_view"
}]
},
]
это данные c. Я хочу сравнить эти данные на основании разрешения.
const PubSidebar = [{
label: "Dashboard",
value: "can_view"
},
{
label: "OA deal",
content: [
{
label: "Deposit",
key: "Deposit",
value: "can_view"
},
{
label: "Corrections",
key: "Corrections",
value: "can_edit"
},
]
},
{
label: "Journal",
content: [{
label: "Add Journal",
key: "Journals",
value: "can_create"
},
]
},
];
Вот мой PubSidebar, мне нужно три типа фильтрации - если массив объектов PubSidebar, то он будет фильтроваться на основе метки. Например, Dashboard - если pubSidebar массив подмассива объектов, то фильтрация будет основываться на метке, ключе и значении, например, PermissionObj key: будет именем свойства, таким как OA deal, Deposit, value: can_view или что-либо еще
My ожидаемый результат будет:
const PubSidebar = [{
label: "Dashboard",
value: "can_view"
},
{
label: "OA deal",
content: [
{
label: "edit oadeal ",
key: "OA deal",
value: "can_edit"
},
{
label: "Deposit",
key: "Deposit",
value: "can_view"
},
]
},
{
label: "Journal",
content: [{
label: "Add Journal",
key: "Journals",
value: "can_create"
},
]
},
];