• javascript 跳出(终止)forEach循环


    报错信息:

    1.错误用法一

      原生态的forEach()方法体中,结束循环不能使用break。

    var array = ["first","second","third","fourth"];
            
    // 直接就报错了
    array.forEach(function(item,index){
        if (item == "third") {
            break;
        }
        alert(item);
    });

    2.错误用法二 

      从网上说使用return false,然并卵

    var array = ["first","second","third","fourth"];
            
    // 会遍历数组所有元素,只是执行到第3次师,return false下面的代码不再执行而已
    array.forEach(function(item,index){
        if (item == "third") {
            return false;
        }
        alert(item);// first,second
    });

      说明:

      forEach()无法在所有元素都传递给调用的函数之前终止遍历,

      return false 在这里起的作用是:只是终止本次继续执行,而不是终止for循环。

    3.正确做法

      因为forEach()无法通过正常流程终止,所以可以通过抛出异常的方式实现终止  

    try {
        var array = ["first","second","third","fourth"];
        
        // 执行到第3次,结束循环
        array.forEach(function(item,index){
            if (item == "third") {
                throw new Error("EndIterative");
            }
            alert(item);// first,sencond
        });
    } catch(e) {
        if(e.message!="EndIterative") throw e;
    };
    // 下面的代码不影响继续执行
    alert(10);

    4.结束for循环,使用break

    // 终止for循环,使用break
    for (var i=0; i < 3; i++) {
        if (1==i) {
            break;
        }
        alert(i);//0
    }

    2020/04/20

    终止jQuery循环使用return false

  • 相关阅读:
    Java MyBatis 插入数据库返回主键
    FISCO-BCOS平台共识
    分布式一致性协议介绍(Paxos、Raft)
    分布式问题分析
    分布式基础知识
    比特币编译(Ubuntu 16.04)
    比特币源代码分析(1)
    c++中的多线程
    剑指offer中数据结构与算法部分学习
    基础的语法知识汇总
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/8920775.html
Copyright © 2020-2023  润新知