Мне нужна эффективная функция для извлечения индекса и позиции аргумента в массиве - но массив может быть сложным.
Это массив:
let root_menu = {
nav_title: $rootScope.t['General administration'],
items: [
{ // overview
title: $rootScope.t['Overview'],
path: `/root/overview`,
module: "overview/menu",
icon: "fa fa-home"
}, // overview
{ // cardboards
title: $rootScope.t['Cardboards'],
path: `/root/cardboards`,
module: "cardboards/menu",
icon: "fa fa-files-o",
subs: [
{
title: $rootScope.t['Suppliers'],
path: `/root/cardboards/suppliers`,
module: "suppliers/menu",
icon: "fa fa-handshake-o"
},
{
title: $rootScope.t['Employees'],
path: `/root/cardboards/employees`,
module: "employees/menu",
icon: "fa fa-address-book-o"
},
]
}, // cardboards
{ // charts
title: $rootScope.t['Charts'],
path: `/root/charts`,
icon: "fa fa-area-chart",
module: "charts/menu",
subs: [
{
title: $rootScope.t['Activity'],
path: `/root/charts/activity`,
module: "charts/activity/menu"
},
]
}, // charts
{ // settings
title: $rootScope.t['Settings'],
path: `/root/settings`,
module: "settings/menu",
icon: "fa fa-cogs",
subs: [
{
title: $rootScope.t['Permissions'],
path: `/root/settings/permissions`,
module: "settings/permissions/menu",
icon: "fa fa-file-text-o"
}
]
} // settings
]
};
Теперь у меня есть этот массив хлебных крошек:
["/", "/root", "/root/cardboards", "/root/cardoards/employees", "/root/cardboards/employees/123"]
И я хочу сопоставить каждый ключ (если есть) в массиве хлебных крошек с первым массивом, чтобы я мог получить что-то вроде этого:
[
{path: "/root/cardboards/", title: "the title from the first
array"},
{path: "/root/cardboards/employees", title: "the title from the .
first array"}
]
Как видите, если нет совпадения между вторым и первым массивом (под ключом пути), не должно быть вложения в новый массив.
Как я могу сделать это эффективно - лучше с ES6.