zoukankan      html  css  js  c++  java
  • for 和 forEach 使用return,是跳出当前的循环,还是整个循环

    return必须是使用在函数里面的

    return有2个作用,结束函数和返回结果

    let aa = function() {
            for(var i = 0; i < 5; i++) {
                console.log(i)
                if (i == 3) {
                    // return
                    // break // 跳出整个循环
                    // continue // 跳出当前循环
                }
            }
        }
        使用return的情况:aa() ;// 0 1 2 3
     
        let bb = function () {
            let arr = [1, 2, 3, 4, 5]
            arr.forEach(item => {
                console.log(item)
                if (item == 3) {
                    console.log('item')
                    // return
                    // break // 语法报错
                    console.log('return')
                }
            })
        }
        使用return的情况:  bb() // 1 2 3 item 4 5
    

    以上得出: for 使用return 、 break,是跳出了整个循环。

                  forEach 使用return只是跳出了当前的循环, 使用break报语法错误。
    
                  forEach  无法在所有元素都传递给调用的函数之前终止遍历
    

    那么如何在forEach 跳出整个循环,可以使用try ,然后主动抛出一个错误:

     let bb = function () {
            let arr = [1, 2, 3, 4, 5]
            try {
                arr.forEach(item => {
                    console.log(item)
                    if (item == 3) {
                        console.log('item')
                        // return
                        // break // 语法报错
                        throw new error // 主动去抛出一个错误
                        console.log('return')
                    }
                })
            } catch {
                console.log('跳出来了')
            }
        }
        bb() // 1 2 3 item 跳出来了
    

    try/catch/finally

    try 语句允许我们定义 在执行的时候 进行错误测试的 代码块

    catch 就是在try语句遇到错误的时候,所执行的代码

    finally 就是在 try 和catch之后 ,无论有无异常都执行

    转自:https://blog.csdn.net/qq_42341025/article/details/99974038

    let arr = [7,5,4,3,1,5,2,6,6,3,4]
    arr.forEach((item,index) => {
        if(index === 3) {
            return    //不能终止循环
        }
    })
    

    也可以用for代替forEach

    let arr = [7,5,4,3,1,5,2,6,6,3,4]
    for(let i = 0; i < arr.length; i ++) {
        if(i === 3) {
            return    //可以终止循环
        }
    }
    
  • 相关阅读:
    将数据导入第三方系统
    希望可以看到自己的积分
    WF疑惑
    GUID
    wf HandlExternalEvent传递参数到自定义属性中
    今天做了一天的网站,烦恼
    WF 参数传递,今天终于把WORKFLOW的参数回传回来了
    今天开始在这里写博了
    寻求帮助,怪问题
    WF终于有了一点入门的感觉
  • 原文地址:https://www.cnblogs.com/panghu123/p/11723644.html
Copyright © 2011-2022 走看看