У меня есть простая функция просмотра объекта в массиве.Если он не находит соответствия на основе свойства, он проверяет, есть ли у него дочерние элементы, а затем проверяет каждое из них на предмет значения свойства.
Кажется, что он работает должным образом с первым объектом с дочерними элементами, однако онне попадает в этот третий слой.
Объект выглядит примерно так:
data = [{
title: 'Home',
route: '/reports/home',
},
{
title: 'Layer 2',
children: [
{ title: 'Title 1', route: '/reports/title1' },
{ title: 'Title 2', route: '/reports/title2' },
],
},
{
title: 'Layer 3',
children: [
{ title: 'Title 3', route: '/reports/title3' },
{ title: 'Title 4', route: '/reports/title4' },
],
}];
lookUpTitle = navGroup => {
for (let item of navGroup) {
if (item.route && item.route.toLowerCase() === '/reports/title3') {
console.log(item.title)
return item.title;
} else {
if (item.children) {
return this.lookUpTitle(item.children);
}
}
}
};
lookUpTitle(data)
Я просто вызываю функцию и передаю массив, как указано выше.
Я могу найти заголовок 2 просто отлично, но функция не будет повторятьсядо третьего объекта в массиве, если я ищу заголовок 3 или 4. Чего мне не хватает?