Я пытаюсь получить список потомков для определенного человека. Ниже приведено то, что у меня есть до сих пор:пытается рекурсивно создать массив результатов из json-подобной структуры JavaScript
function getDescendants(id, descendants){
children = getChildren(id);
if(children){
for (var child in children) {
if(children.hasOwnProperty(child)){
descendants.push(getDescendants(children[child].id, descendants));
}
}
}
return getPersonById(id);
}
Это работает до тех пор, пока оно не вернется к первоначальному вызову и забыли массив детей.
GetChildren возвращается и массив дочерних объектов getPersonById возвращает лицо, объект
Любая помощь/предложения приветствуются
кода не логично, почему бы не вернуть 'descendants' непосредственно –
@AbdelrhmanMohamed Ok представить себе потомок даже не прошел в себе его глобальный ... если вместо этого мы делаем это в цикле 'для (var child у детей) { if (children.hasOwnProperty (ребенок)) { descendants.push (дети [ребенок]); getDescendants (дети [child] .id); } \t \t} ' – HobbitMafia
Позвольте мне понять это, вам нужно помнить, что исходный массив возвращался в первый раз, когда вызывается' getChildren'? вы пытаетесь сделать b-дерево случайно? – Ryan