for循环陷入死循环
For loop stuck in an 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 );
您在内循环和外循环中都使用了相同的变量 i
。因此,您将始终覆盖其在外部 for 循环中应具有的值。
你应该做什么,为内部循环使用不同的变量,例如 j
:
for( var j = 0 ; j < aImages.length; j++) {
sPropertyTemplate = sPropertyTemplate.replace( "{{images"+j+"}}" , aImages[j] );
console.log(aImages[j]);
break;
}
我的 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
。因此,您将始终覆盖其在外部 for 循环中应具有的值。
你应该做什么,为内部循环使用不同的变量,例如 j
:
for( var j = 0 ; j < aImages.length; j++) {
sPropertyTemplate = sPropertyTemplate.replace( "{{images"+j+"}}" , aImages[j] );
console.log(aImages[j]);
break;
}