2017-03-19 9 views
0

My forループが無限ループでスタックされているため、理由を特定できません。誰かが私がここで間違っていることを教えてもらえますか?forループが無限ループでスタックされた

jDataは、テキストファイルから抽出された配列です。イメージは現在コンマで区切られた文字列で格納されており、このループはそれらを抽出して1つずつ表示する必要があります。

for(var i = 0 ; i < jData.length ; i++){ //runs loop to populate container. 
 
\t \t \t \t \t //console.log("array images contains " + jData[i].imgs); 
 

 
        
 
        if (jData[i].imgs){ 
 
         var sImages = jData[i].imgs; 
 
         var aImages = sImages.split(','); 
 

 
         for(var i = 0 ; i < aImages.length; i++) { 
 
          sPropertyTemplate = sPropertyTemplate.replace("{{images"+i+"}}" , aImages[i]); 
 
          console.log(aImages[i]); 
 
\t \t \t \t \t \t \t break; 
 
         } 
 
        } 
 

 
        var sPropertyTemplate = sProperty; 
 
        sPropertyTemplate = sPropertyTemplate.replace("{{id}}" , jData[i].sUniqueId); 
 
        sPropertyTemplate = sPropertyTemplate.replace("{{address}}" , jData[i].sAddress); 
 
        sPropertyTemplate = sPropertyTemplate.replace("{{type}}" , jData[i].sType); 
 
        sPropertyTemplate = sPropertyTemplate.replace("{{price}}" , jData[i].iPrice); 
 
        sPropertyTemplate = sPropertyTemplate.replace("{{locLat}}" , jData[i].lat); 
 
        sPropertyTemplate = sPropertyTemplate.replace("{{LocLng}}" , jData[i].lng); 
 
       

+0

あなたは '第二のループでi'を再利用しています。 – JohanP

答えて

3

あなたは、内側と外側のループの両方で同じ変数iを使用しています。だから、あなたは常にfor-loopの外側にあるはずの値を上書きします。あなたは何をすべき

、などjとして、内部ループに別の変数を使用します。

for(var j = 0 ; j < aImages.length; j++) { 
    sPropertyTemplate = sPropertyTemplate.replace("{{images"+j+"}}" , aImages[j]); 
    console.log(aImages[j]); 
    break; 
} 
+0

はい、今日自分自身が気付いたことに気付いた。 – Wonx2150

関連する問題