jQuery条件,如果不在循环中

时间:2012-12-20 07:51:58

标签: jquery if-statement for-loop conditional

如何在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()

3 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分: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();
}

答案 2 :(得分: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*/
}