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

  • 相关阅读:
    内置的包装类
    子类继承父类的哪些成员
    JAVA笔记140-使用this语句解决构造器重载相互调用问题
    Java学习
    AngularJs2
    Angular
    检测是否所有的栏位都已经填充了内容了。(可以用来判断动态放置的东西和外加的框是否一致)
    上下各有一个框,框里有元素(点击下面的元素,显示到上面的框里面去,按一定顺序排放)
    Nashorn 在JDK 8中融合Java与JavaScript之力
    2014年Facebook的开源成就
  • 原文地址:https://www.cnblogs.com/zhenguoli/p/8546412.html
Copyright © 2011-2022 走看看