2011-11-10 7 views
0
if (_this.tiles["suz:SuzukiHubResponse"]["suz:categories"][category][aspect]["suz:image"][imageNo] != undefined) { 
    if (imageNo > (_this.tiles["suz:SuzukiHubResponse"]["suz:categories"][category][aspect]["suz:image"].length - 1)) { 
     imageNo = 0; 
     _this.categoriesCurrentImage[categoryIndex] = imageNo; 
    } 
    var img = _this.tiles["suz:SuzukiHubResponse"]["suz:categories"][category][aspect]["suz:image"][imageNo]; 

    _this.showImage(img, divId); 
    _this.categoriesCurrentImage[categoryIndex]++; 
    _this.categoryIndex++; 
} else { 

    if (imageNo > (_this.tiles["suz:SuzukiHubResponse"]["suz:categories"][category][aspect]["suz:image"].length - 1)) { 
     imageNo = 0; 
     _this.categoriesCurrentImage[categoryIndex] = imageNo; 
    } 

    var img = _this.tiles["suz:SuzukiHubResponse"]["suz:categories"][category][aspect]["suz:image"]; 
    _this.showImage(img, divId); 
    _this.categoriesCurrentImage[categoryIndex]++; 
    _this.categoryIndex++; 
} 

誰でも私にその理由を教えてもらえますか?ifステートメントがtrueの場合、コードはelseに移動しますか?

ifがtrueであっても、else節で終了しますか? それは私には絶対に意味がありません。

suz:imageノードの下に1つ以上のイメージがある場合、それはelseに落ちるはずです。 それは99%の時間をします。

+2

あなたのコードが悪いフォーマットされます。この問題を修正し、バグをより簡単に明らかにする必要があります。 – zzzzBov

+2

コードを読みやすくしてデバッグするために、いくつかの変数を使用します。例えば、var img = _this.tiles ["suz:SuzukiHubResponse"] ["suz:categories"] [category] ​​[aspect] ["suz:image"];適切なifテスト内で使用してください。 –

答えて

0

あなたが引用符でundefinedをラップする必要があります。

!= "undefined" 
+3

引用符で囲まれていないものは、これを使用する方法では必要ありません。 'typeof'の結果であれば、引用符で囲む必要があります。それ以外の場合は、引用符を使用しません。詳細はhttps://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/undefinedを参照してください。 – jfriend00

+0

誰かがなぜこれを変数に入れたのか私に説明することができますか?私はjson構造のほとんどをimgという名前の変数に入れました。今はそれが動作します。 – Puzzle84

関連する問題