我有一个循环,我加载一个json对象,我希望json文件中的数据将实时显示在我的传单中。 当我在json文件中添加值时,jsonData.length向我显示更新的长度,但循环不会增加变量j。 将新值添加到json文件后,如何增加变量j?
function Loop() {
setTimeout(function() {
load_js();
jsonData=loadJSON(); //load JSON Data
lat = jsonData[j];
lon = jsonData[j+1];
var id = Math.floor((Math.random() * 2) + 1);
jdl = jsonData.length;
mapUpdater("" + id, lat, lon);
if (j < jsonData.length) {
j=j+2;
}
Loop();
}, 1000)
}
答案 0 :(得分:1)
您需要更改j的范围。或者你可以将j添加到Loop函数的参数。
function Loop(j) {
if (j === undefined)
j = 0;
setTimeout(function() {
load_js();
jsonData = loadJSON(); //load JSON Data
lat = jsonData[j];
lon = jsonData[j + 1];
var id = Math.floor((Math.random() * 2) + 1);
jdl = jsonData.length;
mapUpdater("" + id, lat, lon);
if (j < jsonData.length) {
j = j + 2;
}
Loop(j);
}, 1000)
}
Loop();
答案 1 :(得分:1)
感谢您的帮助。 也许我没有详细阐述我的问题。
我自己发现了这个问题。 我认为if条件是问题所在。
我认为阵列超出了范围。 这个问题的答案是:
我改变了这个:
if (j < jsonData.length) {
j=j+2;
}
到此:
if (j < jsonData.length-2) {
j=j+2;
}