我正在实现一种排序,并且遇到了一些意外的行为:
var searches = ['beta', 'alpha'];
var i = 0; j = 0;
for(i = 0; i < searches.length; i++){
min = i;
// first time through, i = 0
alert(i);
for(j = i; j<searches.length; j++);
{
// first time through j = 2. If i = 0, how does j = 2?
alert(j);
// .. sort code
}
}
事实上,j始终是2。为什么进入for循环时j不被设置为i?
这是 jsfiddle: http://jsfiddle.net/w2kK9/3/
最佳答案
您的分号放错了位置:
for (j = i; j < searches.length; j++); // <--
其余部分被解释为在循环执行后运行的 block (当j == 2
时)。
把它拿出来就可以了。
关于javascript - JavaScript 中意外的嵌套循环行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13184247/