我有一个简单的函数查看数组中的对象。如果它没有找到基于属性的匹配项,它会检查它是否有子项,然后检查每个子项的属性值。
它似乎通过第一个带有孩子的对象按预期工作,但是它没有达到第三层。
对象是这样的:
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)
我只是像上面那样调用函数并传入数组。
我可以很好地找到 Title 2,但如果我正在寻找 Title 3 或 4,该函数将不会迭代到数组中的第三个对象。我错过了什么?