у меня есть товары у каждого из них есть массив категорий с 0 индекса = первый уровень категорий и тд. но длинна массивов n(неизвестна) то есть может быть разный уровень вложенности категорий
Пример:
[
'Мелкая бытовая техника',
'Техника для дома',
'Утюги',
'Отпариватели'
],
[ 'Компьютерная и офисная техника', 'Перефирийные устройства' ]
[
'Компьютерная и офисная техника',
'Комплектующие для компьютеров',
'Память',
'Память оперативная',
'DDR4 Desktop'
]
Мне нужно получить из этого удобное дерево категорий, необязательно обьект, главное чтобы было общее дерево всех категорий
Я написал примерный код но он по понятным причинам обрабатывает только первые два уровня категорий
const getCategorieTree = function (products) {
const tree = {}
for (const product of products) {
for (const [index, categorie] of product.categories.entries()) {
if (index === 0) {
if (!tree[categorie])
tree[categorie] = new Object()
} else {
if (tree[product.categories[index - 1]])
tree[product.categories[index - 1]][categorie] = new Object()
}
}
}
return tree
}
а вот что он в итоге создает
{
"Аудио-видео техника": {
"Аудио техника": {},
"Презентационное оборудование": {},
"Проекционное оборудование": {},
"Телевизоры": {}
},
"Аксессуары": {
"Автотовары": {},
"Аксессуары IT": {},
"Аксессуары АВ/ТВ": {},
"Аксессуары для видео стен и коммерческих панелей": {},
"Аксессуары для интерактивных досок": {},
"Аксессуары для проекторов": {},
"Аксессуары для пылесосов": {},
"Аксессуары МБТ": {},
"Аксессуары персональной электроники": {},
"Аксессуары разное": {},
"Кабельное оборудование": {},
"Носители информации": {},
"Элементы питания": {}
},
"Активный отдых,туризм": {
"Оптическое оборудование": {},
"Фонари и аксессуары": {},
"Фото-видео камеры": {}
},
"Дом, сад, ремонт": {
"Ловушки отпугиватели": {},
"Умный дом": {},
"Электроинструмент": {}
},
"Компьютерная и офисная техника": {
"Игровая зона": {},
"Комплектующие для компьютеров": {},
"Офисное оборудование": {},
"Перефирийные устройства": {},
"Печатающие/сканирующие устройства": {},
"Планшетный компьютер/Электронная книга": {},
"Расходные Материалы для печатающих устройств": {}
},
"Мелкая бытовая техника": {
"Завтрак": {},
"Здоровое питание": {},
"Климатическая тех-ка ВСЕСЕЗОН": {},
"Климатическая тех-ка ЗИМА": {},
"Красота и здоровье": {},
"МБТ для кухни": {},
"Мир кофе": {},
"Техника для дома": {},
"Товары для детей": {}
},
"Персональная электроника и телефония": {
"Офисные принадлежности": {},
"Телефония": {}
}
}
я предполагаю что это можно сделать рекурсивным методом но пока не получается
прошу помощи