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

原文地址:https://www.cnblogs.com/zhenguoli/p/8546412.html