0

ソートを実装していますが、予期しない動作に遭遇しました:

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/

4

2 に答える 2

6

セミコロンの位置が間違っています:

for (j = i; j < searches.length; j++); // <--

残りは、ループが実行されたに実行されるブロックとして解釈されます ( when j == 2)。

それを取り出すと、うまくいきます。

于 2012-11-01T19:40:00.667 に答える
2

ネストされた for ループは何もしていません:

for(j = i; j<searches.length; j++); // <- Your for loop proceeds only on this line.

セミコロンを削除します。

于 2012-11-01T19:40:43.750 に答える