【发布时间】:2015-07-17 18:41:39
【问题描述】:
在下面的代码中,我得到了一个无限循环,因为当内部循环完成时,“i”似乎一直被重置为 0。这导致外循环永远不会停止。
变量在循环后被重置是真的吗?我找不到这方面的文档。
function chunk(arr, size) {
var twoDArr = [[],[]];
var i = 0;
var j = 0;
var index = 0;
while(i < arr.length){
while(j < size && i < arr.length){
twoDArr[index].push(arr[i]);
j ++;
i ++;
}
index ++;
}
return twoDArr;
}
chunk(['a', 'b', 'c', 'd', 'f'], 2);
//--> [ [ 'a', 'b' ], [ 'c', 'd' ],['f'] ]
【问题讨论】:
-
那么
index是什么?我刚刚运行了这个,设置了size = 10和index = 0,它并没有导致无限循环。 -
您发布的代码没有理由导致无限循环。所以无论发生什么,都在您的
stuff happens here中发生。标题中问题的简短答案是no。 -
如果未定义大小,则会导致无限循环。检查是否定义了大小。
-
代码编辑以反映整个程序。我试图简化代码以便于阅读。
标签: javascript loops variables while-loop