Javascript 无限循环不';行不通
我有一个循环,加载一个json对象,我希望json文件中的数据能够实时显示在我的传单映射中。 当我在json文件中添加值时,jsonData.length会显示更新的lenght,但循环不会增加变量j。 在json文件中添加新值后,如何增加变量jJavascript 无限循环不';行不通,javascript,json,loops,Javascript,Json,Loops,我有一个循环,加载一个json对象,我希望json文件中的数据能够实时显示在我的传单映射中。 当我在json文件中添加值时,jsonData.length会显示更新的lenght,但循环不会增加变量j。 在json文件中添加新值后,如何增加变量j function Loop() { setTimeout(function() { load_js(); jsonData=loadJSON(); //load JSON Data lat =
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)
}
函数循环(){
setTimeout(函数(){
加载_js();
jsonData=loadJSON();//加载JSON数据
lat=jsonData[j];
lon=jsonData[j+1];
var id=Math.floor((Math.random()*2)+1);
jdl=jsonData.length;
地图更新程序(“+id,lat,lon);
if(j
您需要更改j的范围。也可以将j添加到循环函数的参数中
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();
函数循环(j){
如果(j==未定义)
j=0;
setTimeout(函数(){
加载_js();
jsonData=loadJSON();//加载JSON数据
lat=jsonData[j];
lon=jsonData[j+1];
var id=Math.floor((Math.random()*2)+1);
jdl=jsonData.length;
地图更新程序(“+id,lat,lon);
if(j
您需要更改j的范围。也可以将j添加到循环函数的参数中
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();
函数循环(j){
如果(j==未定义)
j=0;
setTimeout(函数(){
加载_js();
jsonData=loadJSON();//加载JSON数据
lat=jsonData[j];
lon=jsonData[j+1];
var id=Math.floor((Math.random()*2)+1);
jdl=jsonData.length;
地图更新程序(“+id,lat,lon);
if(j
谢谢你们的帮助。
也许我没有充分阐述我的问题
我自己发现了这个问题。
我认为如果条件是问题所在
我认为阵列超出了射程。
这个问题的答案是:
我改变了这一点:
if (j < jsonData.length) {
j=j+2;
}
if(j
为此:
if (j < jsonData.length-2) {
j=j+2;
}
if(j
谢谢你们的帮助。
也许我没有充分阐述我的问题
我自己发现了这个问题。
我认为如果条件是问题所在
我认为阵列超出了射程。
这个问题的答案是:
我改变了这一点:
if (j < jsonData.length) {
j=j+2;
}
if(j
为此:
if (j < jsonData.length-2) {
j=j+2;
}
if(j
不用递归函数,只需使用setInterval即可。首先,您必须调用该函数。你应该把Loop()代码>在函数外部。从技术上讲,无限循环是有效的。@BrandonIbbotson他们为什么会这样?@BrandonIbbotson他们不会。每个调用都将使用自己的堆栈跟踪运行。只需使用setInterval,而不是递归函数。首先,您必须调用该函数。你应该把Loop()代码>在函数外部。从技术上讲,无限循环是有效的。@BrandonIbbotson他们为什么会这样?@BrandonIbbotson他们不会。每个调用都将使用自己的堆栈跟踪运行。if(!j)
{}会更快。if(!j)
{}会更快。