• for,foreach,$.each()跳出循环的比较


    说起跳出循环,第一时间想起的是 break continue,这是经典的for循环。

      1、for 循环

      先上例子,思考输出结果,体会 break 与 continue 的不同。

    复制代码
     1 var arr = [1,2,3,4,5,6]
     2 var arrySpecial = new Array();
     3 for (var i = 0; i < arr.length; i++){
     4         if(arr[i]%2==0)
     5         {
     6             arrySpecial.push(arr[i]);
     7             continue;
     8         }
     9         if(arr[i]%3==0)
    10         {
    11             arrySpecial.push(arr[i]);
    12             break;
    13         }
    14     }
    15 
    16     console.log(arrySpecial);
    复制代码

      continue 结束本次循环,继续执行循环体; break 结束所有循环。在本例中当“2”满足条件后,继续进行下一轮判断,当’3‘满足条件后,break 结束所有循环。

      2、forEach

      这是ECMAScript 5数组的forEach方法 ,作用是遍历数组,常用的写法:

    View Code

      案例分析:

    复制代码
    var arr = [1,2,3,4,5,6]
        var arrySpecial = new Array();
        arr.forEach(function(e,i){
            if(e%2==0)
            {
                arrySpecial.push(e);
                return;
            }
            if(e%3==0)
            {
                arrySpecial.push(e);
                return;
            }
        })
    console.log(arrySpecial);
    复制代码

      在forEach中,不能使用 continue 和 break ,可以使用 return 或 return false 跳出循环,效果与 for 中 continue 一样。注意该方法无法一次结束所有循环,需要一次性结束所有循环,必须把forEach方法放在一个try块中,并能抛出一个异常。

    var arr = [1,2,3,4,5,6]
    
    var arrySpecial = new Array();
    try {
        arr.forEach(function(e,i){
            if(e%2==0)
            {
                arrySpecial.push(e);
                throw Error();
            }
            if(e%3==0)
            {
                arrySpecial.push(e);
                throw Error();
            }
        });
    } catch(e){}
    console.log(arrySpecial);     //输出  [2]

      3、$.each()

      这是jQuery的方法,用于遍历 DOM时很方便,偷懒必备。

      在该方法中,同样是使用 return 或 return false 跳出循环,效果类似 效果与 for 中 break,结束所有循环。

    参考:http://www.cnblogs.com/changchengGZ/p/5440704.html

  • 相关阅读:
    『空』
    退役前的做题记录 Ⅰ
    BZOJ3600 没有人的算术(替罪羊树,线段树)
    洛谷P5324 [BJOI2019]删数(线段树)
    洛谷P4696 [CEOI2011]Matching(KMP)
    Leetcode 638 大礼包 DP
    Leetcode 86 分割链表
    Leetcode 71 简化路径
    Leetcode 17.15 最长单词 剪枝与记忆化
    Leetcode 17.22单词转换 dfs+回溯+剪枝
  • 原文地址:https://www.cnblogs.com/zhenguoli/p/8546412.html
Copyright © 2020-2023  润新知