У меня есть массив объектов, который выглядит примерно так:
treeData: [
{ title: 'Some site',
url: 'www.somesite.com',
children: [{ title: 'Another site', url: 'www.anothersite.com' }] },
{ title: 'Good site',
url: 'www.goodsite.com',
children: [{ title: 'Bad site', url: 'www.badsite.com',children:[same
pattern...] }] }
]
Каждый объект имеет свойства "title" и "url", а также может иметь массив "children", который следуетта же картина.Мне нужно перебрать каждый объект, добавить свойство «subtitle», которое идентично «url».Если бы это было только двумерное, я мог бы просто проверить, есть ли у него свойство "children", и действовать соответствующим образом, но, учитывая, что оно может иметь любое количество измерений (представьте многомерное выпадающее меню navbar), я подумал о переходе нарешение рекурсивной функции.Я сделал что-то подобное:
static convertUrlsToSubTitles(treeData) {
_.each(treeData, function (menu) {
menu.subtitle = menu.url
console.log(menu.subtitle)
if (menu.children && menu.children.length > 0) {
menu.children.forEach((child) => {
SortableMenu.convertUrlsToSubTitles(menu.children);
})
}
});
return treeData;
}
Это, конечно, совершенно некорректно и работает только для первого измерения.Как это может быть сделано?Любой тип решения будет с благодарностью