zoukankan      html  css  js  c++  java
  • [转] JS中arr.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);
    });


    那么在用forEach()遍历数组时要如何才能跳出循环呢?经过查找资料后,我找到了两种方法可以实现跳出循环。

    第一种:使用try···catch捕获异常实现

    try{
    var array = ["first","second","third","fourth"];
    array.forEach(function(item,index){
    if(item == "third"){
    var a = aaaa;// first second 后就报错,就跳出循环了
    throw new Error("ending");//报错,就跳出循环
    }else{
    log(item);
    }
    })
    }catch(e){
    if(e.message == "ending"){
    log("结束了") ;
    }else{
    log(e.message);
    }
    }
    第二种方法:使用arr.some()或者arr.every()替代

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

    var arr = [1,2,3,4,5];
    var num = 3;
    arr.some(function(v){
    if(v == num) {
    return true;
    }
    console.log(v);
    });
    every()当内部return false时跳出整个循环

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

    原文链接:https://blog.csdn.net/guxin_duyin/article/details/82980062

  • 相关阅读:
    DataTable转换成IList<T>的简单实现
    websocket
    获取用户使用设备信息
    判断对象是否相等
    关于PC适配
    树形数据结构实现平铺展示
    埋点
    多层表单验证
    表格行拖动,数据中状态值不同的禁止拖拽
    element tree 深度查询
  • 原文地址:https://www.cnblogs.com/chris-oil/p/11556991.html
Copyright © 2011-2022 走看看