我正在实施一种排序,我遇到了一些意想不到的行为:
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/
答案 0 :(得分:6)
你有一个错位的分号:
for (j = i; j < searches.length; j++); // <--
其余部分被解释为在执行循环之后运行的块(j == 2
时)。
把它取出来并且工作正常。
答案 1 :(得分:2)
你的嵌套for循环没有做任何事情:
for(j = i; j<searches.length; j++); // <- Your for loop proceeds only on this line.
删除半结肠。