У меня есть что-то вроде этого дерева
var datas = {
'tree': [
{
'name': 'name1',
'tree': [
{'name': 'name2'},
{'name': 'name3'},
{
'name': 'name4',
'tree': [
{'name': 'name5'},
{'name': 'name6'}
]
},
{'name': 'name7'}
]
},
{
'name': 'name8',
'tree': [
{'name': 'name9'}
]
}
]
}
Я хочу найти всех родителей указанного идентификатора
, например, в демонстрации дерева, если я ищу 'name5'Я хочу найти "name1, name4, name5"
Я написал этот код, но результаты неверны, и я получил идентификаторы других элементов, а не только родителей
Это мой код
keys: string[];
pathFound: boolean = false;
getLevel(event: iEventBase, id: string, path: string[]): void {
if (this.pathFound) return;
event.content.forEach((key) => {
if (key.id == id) {
if(!path){
path = [];;
}
path.push(key.id);
this.keys = path;
this.pathFound = true;
return;
}
if (key.type === "page") {
if(!path){
path = [];
}
path.push(key.id);
this.getLevel(key, id, path);
}
})
}
}
this.getLevel(state.mainEvent.content.page, event.id, null);