-1
現在の再帰に問題があります。私がthis.membとthis.childを記録するとき、それらの2つは同じ値です。しかし、それは事実ではない。理論的に言えば、this.childはthis.membの子でなければなりません。Javascript:forループによる再帰
buildGraphNode(treeNode){
if(!(treeNode.data instanceof Array)){
this.memb = this.member("" + treeNode.label, "" + treeNode.label, 'images/user1.png', '#d0000c', '', 'B');
this.members.push(this.memb);
}
for (var i = 0; i<treeNode.children.length; i++) {
this.child = this.buildGraphNode(treeNode.children[i]);
if(this.child != null && this.memb !=null){
console.log(this.memb);
console.log(this.child);
this.connections.push(this.link(this.memb,this.child));
}
}
return this.memb;
}
グローバル変数を作成する 'var'、' const'、 'let'がなければ! – Sylwester
これです。すべてのグローバル変数です。 (Angular2コンポーネントです) – Dino
これらの変数を関数内に作成するとします。 1つの変数が常に設定解除されるので、if(child!= null)&& memb!= null)を渡しません。 – Dino