我的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;
答案 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;
}