对于陷入无限循环的循环

时间:2017-03-19 21:15:48

标签: javascript jquery loops for-loop infinite-loop

我的for循环陷入无限循环,我无法弄清楚原因。有人能告诉我这里我做错了什么吗?

jData是从文本文件中提取的数组。图像当前存储在逗号分隔的字符串中,此循环应该提取它们并逐个显示它们。



 for( var i = 0 ; i < jData.length ; i++ ){ //runs loop to populate container.
					//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]);
							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 );
                   
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:3)

您在内部和外部循环中都使用相同的变量i。因此,您将始终覆盖它在外部for循环中应具有的值。

您应该做什么,为内循环使用不同的变量,例如j

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