-1

For ループの最後に条件を追加するにはどうすればよいですか?

例:

if (state) {
    for (var i = 0, l = $imageLength; i < l; i++) {
        if ($images[i].url === state) {
            rGallery.init(i);
            break;
        }
    }

    /* Need to add here: if NOT in loop... blah*/

} else {
    rGallery.init();
}

補足として、それを回避するためにロジックを改善することもできます... if (状態がループ内で一致する) init(i) else init()

4

3 に答える 3

2

ブール変数を使用するのはどうですか?

var hasMatch = false;
if (state){
    for (var i = 0, l = $imageLength; i < l; i++){
        if ($images[i].url === state){
            rGallery.init(i);
            hasMatch = true;
            break;
        }
    }
}
if(!hasMatch){
    rGallery.init();
}
于 2012-12-20T07:56:29.960 に答える
1

別の変数をフラグとして使用し、ループの後でそれを確認できます。

var found = false;
if (state){
    for (var i = 0, l = $imageLength; i < l; i++){
        if ($images[i].url === state){
            rGallery.init(i);
            found = true;
            break;
        }
    }
}

if (!found){
    rGallery.init();
}
于 2012-12-20T07:56:28.870 に答える
1

結果がループ内で見つかったかどうかにかかわらず、フラグを設定できます。

var found = false;
for (var i = 0, l = $imageLength; i < l; i++){

    if ($images[i].url === state){

        rGallery.init(i);
        fount = true;
        break;
    }
}
if (!found) {
    /* Need to add here: if NOT in loop... blah*/
}
于 2012-12-20T07:56:50.520 に答える