Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于循环过早结束的Javascript_Javascript_Dojo - Fatal编程技术网

用于循环过早结束的Javascript

用于循环过早结束的Javascript,javascript,dojo,Javascript,Dojo,我正在用dojo编写应用程序,并尝试执行以下代码: /*for (i = 0; i < mainProperties.calendar.store.data.length; i++) { console.log("render loop " + i); mainProperties.calendar.store.put(mainProperties.calendar.store.data[i]); console.log(mainProperties.calenda

我正在用dojo编写应用程序,并尝试执行以下代码:

/*for (i = 0; i < mainProperties.calendar.store.data.length; i++) {
    console.log("render loop " + i);
    mainProperties.calendar.store.put(mainProperties.calendar.store.data[i]);
    console.log(mainProperties.calendar.store.data.length);
}*/

mainProperties.calendar.store.put(mainProperties.calendar.store.data[0]);
mainProperties.calendar.store.put(mainProperties.calendar.store.data[1]);
/*for(i=0;i
mainProperties.calendar.store.data只是一个包含json元素的数组。for循环正确地通过第一个元素运行,分别将“渲染循环0”和“2”记录到控制台。但是,for循环随后结束,不再执行第二次

我运行了最后两行代码,以确保元素本身没有问题,并且都正确执行。有人有什么建议吗

顺便说一句,我使用此代码在从数据库中提取元素后重新启动渲染器。这是DojoX日历小部件的修改版本。

(将其移动到注释中的答案)


很难说没有看到更多的代码,但我怀疑这是一个范围问题。循环中的某些内容可能正在设置i的值,这会导致循环提前退出

您需要确保的是在将要使用它们的函数中声明变量。与此相反:

for (i = 0; i < mainProperties.calendar.store.data.length; i++) {
    console.log("render loop " + i);
    mainProperties.calendar.store.put(mainProperties.calendar.store.data[i]);
    console.log(mainProperties.calendar.store.data.length);
}
for(i=0;i
这样做:

var i; // <- declare here
for (i = 0; i < mainProperties.calendar.store.data.length; i++) {
    console.log("render loop " + i);
    mainProperties.calendar.store.put(mainProperties.calendar.store.data[i]);
    console.log(mainProperties.calendar.store.data.length);
}

var i;//很难说没有看到更多的代码,但我怀疑这是一个范围问题。循环中的某些内容可能正在设置
i
的值,这会导致循环提前退出。你完全正确!我把I改成了k,一切都很顺利!非常感谢你,我已经盯着这个看了两天了,都想不出来了!