Heres ist mein Code für eine rekursive Post-Order-Traversal in JavaScript mit einem JSON-Baum.Allgemeine Baumpfosten-Reihenfolge Traversal
Wie würde ich diesen Code anpassen, um N Kinder in einem Knoten zu behandeln?
Heres ist mein Code für eine rekursive Post-Order-Traversal in JavaScript mit einem JSON-Baum.Allgemeine Baumpfosten-Reihenfolge Traversal
Wie würde ich diesen Code anpassen, um N Kinder in einem Knoten zu behandeln?
Dies sollte tun, was Sie wollen: Ersetzen Sie einfach Ihre Anrufe postOrder
mit root.children.forEach(postOrder);
.
var tree = {
"name" : "root",
"children" : [
{
"name" : "first child",
"children" : [
{
"name" : "first child of first",
"children" : []
},
{
"name" : "second child of first",
"children" : []
}
]
},
{
"name" : "second child",
"children" : []
}
]
}
function postOrder(root) {
if (root == null) return;
root.children.forEach(postOrder);
console.log(root.name);
}
postOrder(tree);
ich auch die Zeile, die vor dem Aufruf der root
Namen druckt bewegen würde, die die Kinder Namen rekursiv druckt, aber diese passen Fall Ihre Verwendung kann nicht.
Perfekt !! Danke vielmals! Ich wusste, dass es iterativ zu diesem Zeitpunkt getan werden musste, aber meine Kenntnisse von Javascript sind im Moment arm, der forEach ist ein Trick, den ich in meinen Büchern behalten werde Danke! –
Gern geschehen @WoodyBriggs –
Haben Sie versucht, etwas wie 'für (Kind in root.children) postOrder (root.children [Kind])'? – Tibrogargan
@Tribrotargan trotzig funktioniert! Vielen Dank! aber ich denke, ich bevorzuge das "forEach" wie unten vorgeschlagen :) –
Ich auch. Mein Gehirn erwartet Javascript '' für .. in' Konstrukt, um das gleiche wie in anderen Sprachen zu arbeiten, denn jeder ist sauberer. – Tibrogargan