私は再帰を介して現在アクセスしているが、実行できない子のすべての親ノードにアクセスするためのロジックを構築しようとしていますそう。ここで私はこれまで何をやったかです:Javascript再帰:子ノードの親アクセスのインスタンスへの方法
は、ここに私の配列です:
var results = [{
"key": 1,
"name": "A",
"child": [{
"key": 2,
"name": "A1",
"child": [{
"key": 1473591350189,
"name": "A11"
}]
}, {
"key": 10,
"name": "A2",
"child": []
}]
}, {
"key": 66,
"name": "B",
"child": [{
"key": 67,
"name": "B1",
"child": [{
"key": 68,
"name": "B11",
"child": [{
"key": 69,
"name": "B111",
"child": []
}]
}]
}]
}];
は今、私のロジックが反復のためです:
function recursionFn(results, parentNode) {
for (var i = 0; i < results.length; i++) {
var _node = results[i];
if (_node.child.length > 0) {
console.log('Name: ' + _node.name + ' First Childs: ' + _node.child.length);
if (parentNode)
console.log('ParentNode: ' + parentNode.name);
}
if (_node.child.length > 0)
recursionFn(_node.child, _node);
if (_node.child.length == 0) {
console.log('Name: ' + _node.name + ' Second Childs: ' + _node.child.length);
if (parentNode)
console.log('ParentNode: ' + parentNode.name);
}
}
}
ここで私は、現在の子の直接の親を取得しています私は入っていますが、どうすればその子供の両親にアクセスできますか?たとえば、関係が: A - > A1 - > A11 の場合:A11のすべての親にどのようにアクセスできますか?前もって感謝します!!
彼のデータ構造は、親ノードへの逆ポインタを持っていません。親を見つけるには、子供を見つけるために再帰的な散歩をしなければなりません。彼が探しているアルゴリズムは、ゲームプログラミングやネットワーク最適化で、より頻繁に使用されています:Dijkstraのアルゴリズム(ヒューリスティックにガイドされたバージョン、A *は通常ゲームAIのための経路探索に使用されます) – slebetman