Я пытаюсь отфильтровать массив по значению вложенного массива третьего уровня. Я пытался использовать .filter
. Формат массива показан ниже, например. Мне нужно отфильтровать menuItems на основе роли.
const menuItems = [{
title: 'inventory',
submenu: [{
title: 'GRN',
role: ['admin']
},
{
title: 'purchase order',
role: ['user']
},
]
},
{
title: 'sales-invoice',
submenu: [{
title: 'invoice ',
role: ['admin']
},
{
title: 'invoice-list',
role: ['user']
},
]
},
]
Определена переменная роль
var role=['admin']
Я попытался отфильтровать, используя следующий код. Но я не смог получить результат
const result = menuItems.filter(menu => {
if (menu.submenu) {
menu.submenu.filter(submenu => {
return this.role.some(val => (submenu.role.indexOf(val) !== -1))
})
}
})