用于循环过早结束的Javascript
我正在用dojo编写应用程序,并尝试执行以下代码:用于循环过早结束的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
/*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,一切都很顺利!非常感谢你,我已经盯着这个看了两天了,都想不出来了!