【问题标题】:For loop stuck in an infinite loopFor循环陷入无限循环
【发布时间】:2017-03-19 21:15:47
【问题描述】:

我的 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 );
                   

【问题讨论】:

  • 你在第二个循环中重复使用i

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


【解决方案1】:

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

你应该怎么做,为内部循环使用不同的变量,例如j

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

【讨论】:

  • 是的,我今天意识到了这一点,谢谢:)。
猜你喜欢
  • 1970-01-01
  • 2020-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多