JS如何终止forEach循环

我们都知道for循环里要跳出整个循环是使用break,但在数组中用forEach循环如要退出整个循环呢?使用break会报错,使用return也不能跳出循环。

使用break将会报错:

    var arr = [1,2,3,4,5];
    var num = 3;
    arr.forEach(function(v){
       if(v == num) {
           break;
       }
       console.log(v);
    });

 

 使用return也不能跳出整个循环:

    var arr = [1,2,3,4,5];
      var num = 3;
    arr.forEach(function(v){
      if(v == num) {
        return;
      }
              console.log(v);
    });

 

 解决方法:

    1:使用try···catch捕获异常实现:

       try{

            var array = [1,2,3,4,5];
            array.forEach(( item,index ) => {
                    if(item == 3){
                        // 执行完 1 2 之后就报错,就跳出循环了
                   throw new Error("ending");//报错,就跳出循环
                   }else{
                      console.log(item);
                    }
               })
    }catch(e){
            if(e.message == "ending"){
               console.log("结束了") ;
            }else{
                console.log(e.message);
            }
    }

 

    2:使用arr.some( )  或者  arr.every( ) 替代

      some()当内部return true时跳出整个循环:

        var arr = [1,2,3,4,5];

        var num = 3;

        arr.some( item =>{
             if( item == num ) {
               return true;
           }
           console.log( item );
        });
      every()当内部return false时跳出整个循环:

        var arr = [1,2,3,4,5];
        var num = 3;
        arr.every( item =>{
          if( item == num ) {
          return false;
        }else{
          console.log( item );
          return true;
        }
       });

 

 

 

 

 

posted @ 2021-08-09 11:14  爱划水的小刚哥  阅读(4658)  评论(0编辑  收藏  举报