在角度为6的环境中,我有一个对象数组,这些对象可能包含子对象组,这也是一个对象数组,因此就像一个对象链,我需要搜索在这些对象中找到特定的字符串,如果找到了,我需要往导致目标对象的链上移动,并为具有目标字符串的链设置一个特定的布尔值,称为extended为true
这是对象的一个例子
{
name: 'link 1',
extended: false, // needs to be true
subGroups: [
{
name: 'link2',
extended: false, // needs to be true
subGroups: [
{
name: 'link3', // this is the target string
extended: false,
subGroups: [
{
name: 'link4',
extended: false,
subGroups: [
{
name: 'brands',
extended: false
}
]
}
]
}
]
},
{
name: 'test1',
extended: false
}
]
},
{
name: 'tab1',
extended: false,
subGroups: [
{
name: 'tab2',
extended: false
},
{
name: 'tab3',
extended: false
},
{
name: 'tab4',
extended: false,
subGroups: [
{
name: 'mahmoud',
extended: false,
subGroups: [
{
name: 'mahmoud 2',
extended: false
}
]
}
]
}
]
}
];
这是我已经实现的递归函数,但它只获取父对象
urlFinder(groups, parentGroup) {
groups.forEach((group, index) => {
if (group.name === 'link3') {
group.activeRoute = true;
console.log(parentGroup);
return;
} else {
if (group.subGroups) {
parentGroup = group;
this.urlFinder(group.subGroups, parentGroup);
}
}
});
}
函数url查找器在OnInit()生命周期挂钩中触发