2011-11-12 15 views
0

私は配列を持っています。私はarray.lengthでループしようとしていますが、ループの途中で何の理由もなく停止します。配列を通るJavascriptのループが中間で終了する

コード:

var id = ['88' , '89' , '90' , '91' , '92' , '93' , '94' , '95' , '96' , '97' , '98' ]; 
    var parent_id = ['1' , '1' , '88' , '1' , '88' , '91' , '93' , '93' , '92' , '90' , '97' ]; 

    function getAllLearningPaths(id){ 


    document.getElementById("catdiv").innerHTML += "THIS IS HE CURRENT CATEGORY ID : " + id  + "<br>"; 
    for(var i=0; i < id.length;i++) 
    { 
    document.getElementById("catdiv").innerHTML += "THIS IS HE CURRENT CATEGORY PARENT ID : " + parent_id[i] + "<br>"; 
    if(parent_id[i] == id && id[i] != id) 
    { 
     document.getElementById("catdiv").innerHTML += "I MADE IT!"; 
     getAllLearningPaths(parent_id[i]); 


    }  
} 

for(var i=0; i< Categories.length;i++) 
{ 
    if(Categories[i] == id) 
    { 
     document.getElementById("l_ids_"+CategoriesValues[i]).checked = true; 
     disablerow(document.getElementById("l_ids_"+CategoriesValues[i]), '1'); 


    } 

}   

return; 
} 

カテゴリは、コードでどこかに移入されます。それは問題ありません。 事は、最初のループdosen'tは2番目の実行を通過することです。 このコードの出力:

THIS HEは、現在のカテゴリのID IS:88 THIS IS HE現在のカテゴリの親ID:1 THIS HE現在のカテゴリの親ID:1つの

任意のアイデア?

答えて

0

この行は間違って見える -

if(parent_id[i] == id && id[i] != id) 

parent_idid変数は、このテストに合格するためにint型である必要があるので、intの配列のように見えます。次に、if文の次の部分の配列としてiを参照します(id[i] != id)。

+0

これは問題のようでした。ありがとう!!!! –

0

if(Categories[i] == id)のように見えます。カテゴリ内の値をチェックしています。idの配列です。idの中のインデックスと照合する必要がありますか?

+0

idは、この関数の過去のパラメータです。 –

0

例外がスローされる必要があります。代わりに、問題はあなたのコードである場合を把握しようと、あなたはあなたの関数では放火犯

0
if(parent_id[i] == id && id[i] != id) 

で例外処理(使用トライキャッチ)とデバッグを追加する必要があり、「ID」は、それがあるので、PARENT_IDを指しあなたが関数に渡した引数。このラインを破壊

は意味:

if(parent_id[i] == parent_id && parent_id[i] != parent_id) 

私はあなたの引数の変数、またはID列の名前を変更するのいずれかを示唆しています。

0

ループが2回実行されているようです。私はidパラメータのために '88'のような文字列を渡していると思います。したがって、idは文字列であるため、id.lengthは2を返します。

関連する問題