Javascript 价值++;在for循环本身中
我有一个关于javascript中for循环的相当简单的问题。我试图在运行一个方法后增加值(Javascript 价值++;在for循环本身中,javascript,for-loop,callback,Javascript,For Loop,Callback,我有一个关于javascript中for循环的相当简单的问题。我试图在运行一个方法后增加值(j),该方法声明一个回调方法,并在该函数中增加值。但是我的代码中断了,我不确定它是否是有效的JavaScript。但我检查的所有地方都是有效的javascript代码: 就像那句话,陈述3 这是我的密码: for(j=0; j <= 5; ) { var keyContent = window.localStorage[window.localStorage.key(j)]; c
j
),该方法声明一个回调方法,并在该函数中增加值。但是我的代码中断了,我不确定它是否是有效的JavaScript。但我检查的所有地方都是有效的javascript代码:
就像那句话,陈述3
这是我的密码:
for(j=0; j <= 5; )
{
var keyContent = window.localStorage[window.localStorage.key(j)];
console.log(keyContent);
var dataForm = JSON.parse(keyContent);
uploadDataAndImage(dataForm, function(data) {
console.log(data);
if(data){
console.log("Data good");
j++;
}
else
{
console.log("Data bad");
break;
}
});
}
for(j=0;j代码中的问题不是循环,而是break
语句。我建议您通过return
语句来更改它
for(j=0; j <= 5; )
{
var keyContent = window.localStorage[window.localStorage.key(j)];
console.log(keyContent);
var dataForm = JSON.parse(keyContent);
uploadDataAndImage(dataForm, function(data){
console.log(data);
if(data){
console.log("Data good");
j++;
}
else
{
console.log("Data bad");
return;
}
});
}
for(j=0;j如果需要在循环内递增,则需要一个while循环:
var j = 0;
while (j <= 5) {
var keyContent = window.localStorage[window.localStorage.key(j)];
console.log(keyContent);
var dataForm = JSON.parse(keyContent);
uploadDataAndImage(dataForm, function(data) {
console.log(data);
if(data){
console.log("Data good");
j++;
} else {
console.log("Data bad");
break;
}
});
}
var j=0;
虽然(j Increment j in for loop like(j++)uploadDataAndImage
是异步的,不是吗?这根本不适用于for循环。是的,它是异步的。我通过使用一种变通方法使它工作,请看我的editNot work,应用程序只是冻结和崩溃。如果我将j++放入for循环本身,如:for(j=0;j编号。对
循环使用是完全正确的,并且将以相同的方式工作。
var j = 0;
while (j <= 5) {
var keyContent = window.localStorage[window.localStorage.key(j)];
console.log(keyContent);
var dataForm = JSON.parse(keyContent);
uploadDataAndImage(dataForm, function(data) {
console.log(data);
if(data){
console.log("Data good");
j++;
} else {
console.log("Data bad");
break;
}
});
}