これは私の子を追加するための私の関数です。フラグを指定すると、子を一度追加します。フラグがなければ、無限ループに入ります。フラグはグローバルです。Javaスクリプトが再帰的に子を追加すると、無限ループで終了する
function addChildToParent(node, parent, child) {
if (node.name == parent) {
node.add(child);
flag = true;
}
else if (flag==false){
for (i = 0; i < node.children.length; i++) {
addChildToParent(node.getChild(i), parent, type, child);
}
}
}
それはここと呼ばれている、なめらかの長さは、上記3.
request.onload = function() {
var ecs=[];
for(i=0;i<smth.length;i++){
ecs[i]= new Node(smth[i],EC);
flag=false;
addChildToParent(node,smth[i],ecs[i]);
}
};
機能が2回呼び出されているです。 質問は間違っていますか?
'flag'はvarなしで定義しているので、グローバルです。それを 'true'に設定すると常に' true'になります。おそらくもっとわかりやすい名前を付けるべきでしょう。行の混乱を避けるために '==='を '=='に使用してください。 – Olical
forループ内の 'i'はグローバル変数でもなく、残りのコードも分かりませんが、forループがあれば上書きすることができます。 – zer00ne
ありがとうzer00ne、それは今完全に動作します。 – dreadnightmare