zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    B. Random Teams(Codeforces Round 273)
    Unity3d中的属性(Attributes)整理
    Python 的 Flask 框架安装应用
    动态SQL(章节摘要)
    Linux系统PWM驱动【转】
    嵌入式电路中的BUCK VS LDO【转】
    git用法-打补丁【转】
    展讯7731C_M Android6.0 充电指示灯实现(一)------关机充电实现【转】
    Android 充电信息的获取【转】
    2.Android硬件访问服务编写系统代码【转】
  • 原文地址:https://www.cnblogs.com/zhenguoli/p/8546412.html
Copyright © 2011-2022 走看看