• [转] 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

  • 相关阅读:
    jsp内置对象
    Response响应
    中医不传之秘
    slam-四元运动学
    ubuntu 16.04 设置 win+e 快捷键打开文件夹管理器
    ubuntu16.04 更新nvidia 显卡驱动后显示 clean ... files ... blocks ... /sys/class/backlight/nvidia_0/actural_brightness
    android studio 引入模块失败解决方法
    gradle
    python logger
    ubuntu自定义终端风格
  • 原文地址:https://www.cnblogs.com/chris-oil/p/11556991.html
Copyright © 2020-2023  润新知