2016-10-21 7 views
2

Jqueryで配列の内容をループしようとしていますが、配列には場所名のリストが含まれ、その後にURL([0]名、[1] url、[2] name [3 ] URLなど)。地名のデータはAPIを介して取得されているため、未定義のデータもあります。以下は現在の反復での私のループです。 "場所名" [1]:「HTTPS:/下 Jqueryの配列ループ

 for (var i=0; i<albums.length; i++){ 
      if ((albums[i] != "undefined") && (albums[i+1].indexOf("http") !== 1)){ 
       $("#thumbnail").css("overflow:", "auto"); 
       $("#thumbnail").css("max-height:", "100px"); 
       $("#thumbview").append('<div id="thumbnail"><img src='+[i+1]+' id="coverPhoto" height="320" width="420"></a></div>'); 
      } 
      i++; 
     };  

配列[14]

[0]が現在構成されているとしてアレイであります... "[5]:" https:/ ... "[6]:"ロケーション名 "[3]:" [7]: "https:/ ..." [8]:未定義[9]: "https:/ ..." [10]:未定義[11]: "https:/ ..." [12] ]:「ロケーション名」[13]:「https:/ ...」

[i]が定義されていない場合は[i]をチェックし、[i + 1]をチェックして両方の条件がtrueの場合は "http"が含まれているかどうかを確認する>配列からのソースを取得し、場所名として名前とキャプションを設定します。

現在の反復では正しく動作していないようですが、名前が定義されていないかどうかに関係なく、繰り返し処理され、divが作成されます。

ご協力いただければ幸いです。

+0

'私は+ 1 '、トラブルの原因となります最後の反復で。 – Rayon

+0

配列、入力、出力の以下の構造を共有できますか? – gurvinder372

答えて

4

albums [i]の内容が定義されていない文字列と等しいかどうかを実際に確認しています。 albums [i]の内容が未定義であるかどうかを確認する必要があります。 ===/!==演算子も使用する必要があります。変数がnullであるかどうかをチェックしたい場合は、チェックする必要がありalbums[i] === null場合やalbums[i] !== null

albums[i] != "undefined" =>albums[i] !== undefinedここ

であるあなたのforループ:

for (var i = 0; i < albums.length; i++){ 
    if ((albums[i] !== undefined) && (albums[i+1].indexOf("http") !== 1)){ 
     $("#thumbnail").css("overflow:", "auto"); 
     $("#thumbnail").css("max-height:", "100px"); 
     $("#thumbview").append('<div id="thumbnail"><img src=' + [i+1] + ' id="coverPhoto" height="320" width="420"></a></div>'); 
    }; 
}; 
+1

IMO、 'albums [i]!==" undefined "' – Rayon

+1

@ Jean-Paul_Goodwin、まだ二重のインクリメントがありますか? 'for(var i = 0; i Roy123

+1

@Roy_Dorsthorstはい、削除しました。コードはよりよく動作し、divをスキップしません –