【问题标题】:jQuery conditional if not in loopjQuery条件如果不在循环中
【发布时间】:2012-12-07 16:46:30
【问题描述】:

如何在 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 (state has a match in the loop) init(i) else init()

【问题讨论】:

  • 如果你需要条件,你可以在 do while 循环中使用 do-while 循环,我们在循环结束时检查条件
  • 您是想通过循环结束还是通过break; 语句来判断您是否走到了尽头?
  • 你想达到什么目的?

标签: jquery if-statement for-loop conditional


【解决方案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】:

    如何使用布尔变量:

    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();
    }
    

    【讨论】:

      【解决方案3】:

      如果在循环中找到结果,您可以设置一个标志:

      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*/
      }
      

      【讨论】:

        猜你喜欢
        • 2021-09-30
        • 1970-01-01
        • 2021-08-22
        • 1970-01-01
        • 2012-03-16
        • 2020-05-02
        • 2020-02-06
        • 1970-01-01
        • 2016-01-28
        相关资源
        最近更新 更多