У меня есть файл JS, который используется для визуализации v-списка vuetify, который может иметь 2 уровня (узлы с дочерними элементами, и они являются необязательными).
Мне нужно добавить фильтр из В поле поиска, в которое входит пользователь, я мог бы отфильтровать первый уровень, но у меня проблемы со вторым, потому что иногда они имеют свойство "children" в null, а в других случаях они имеют значения. Меню выглядит так:
const Menu = [
{
heading: null,
icon: "mdi-security",
text: "Login",
url: {
name: "login"
},
exactUrl: false,
children: null,
meta: {
publicPath: true
}
},
{
heading: null,
icon: "search",
text: "Lista de Funcionarios",
url: {
name: "home"
},
exactUrl: true,
children: null,
meta: {
publicPath: true
}
},
{
heading: {
text: "Mantenimientos",
publicPath: false
},
icon: null,
text: "",
url: null,
exactUrl: null,
children: null,
meta: null
},
{
heading: null,
icon: "mdi-account-group",
text: "Departamentos",
url: {
name: "departamentos"
},
exactUrl: false,
children: null,
meta: {
publicPath: false
}
},
{
heading: null,
icon: "mdi-account-circle",
text: "Funcionarios",
url: {
name: "funcionarios"
},
exactUrl: false,
children: null,
meta: {
publicPath: false
}
},
{
heading: null,
icon: "settings",
text: "Operación",
url: null,
exactUrl: false,
children: [{
icon: "add",
text: "Cargar Pedidos",
url: {
name: "departamentos"
}
},
{
icon: "playlist_add_check",
text: "Aprobar Pedidos",
url: {
name: "areas"
}
},
{
icon: "content_copy",
text: "Remitir Pedidos",
url: {
name: "maps"
}
}
],
meta: null
},
];
export default Menu;
И моя вычисленная функция такова:
filteredMenu() {
return this.menus.filter(menu =>
menu.text.toLowerCase().includes(this.search.toLowerCase())
);
}
Как я могу фильтровать одновременно на обоих уровнях?
РЕДАКТИРОВАТЬ 1 : "
Ожидаемый результат: