javascript - JavaScript 中意外的嵌套循环行为

标签 javascript

我正在实现一种排序,并且遇到了一些意外的行为:

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/

相关文章:

javascript - 在浏览器调整大小(视口(viewport)宽度)时动态添加类

javascript - yarn : add dependency from subdirectory in git repository

javascript - 在 Firefox 中设置启动时的首选项

javascript - 如何运行数字键来为asp.net文本框输入数字?

javascript - 将 dom 作为变量插入另一个 dom 中

javascript - Electron Packager和NightmareJS的小问题

javascript - 在移动键盘(iOS)上点击返回时如何取消选择输入字段

javascript - 将嵌套对象的每个对象的索引设置为属性

javascript - 我们可以改变所选点的样式吗?

javascript - 如何使用CSS将嵌套元素设置到屏幕边缘