javascript - for循环中可以使用两个break跳转到同一个指定位置么?

查看:79
本文介绍了javascript - for循环中可以使用两个break跳转到同一个指定位置么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

function whatIsInAName(collection, source) {
    var arr = [];
    var a = Object.keys(source);
    console.log(a)
    loop:for (var i =0 ;i<collection.length;i++){
        var flag=true;
        for(var j=0;j<a.length;j++){
            if(collection[i].hasOwnProperty(a[j])){
                if(collection[i][a[j]]!==source[a[j]]){
                    // flag=false;
                    break loop; //如果不相等跳到第一个for,开始下一轮
                }
            }else {
                // flag=false;
                break loop; //如果不相等跳到第一个for,开始下一轮

            }

        }
        // if(flag){
        //     arr.push(collection[i]);
        // }
        arr.push(collection[i]);         }
    
    return arr;
}

var a = whatIsInAName([{ "a": 1, "b": 2 }, { "a": 1 }, { "a": 1, "b": 2, "c": 2 }], { "a": 1, "b": 2 });

都是从第二个for中跳出来的,这里在迭代完第二个元素{ "a": 1 }时,进入第二个break,然后直接就return了,我知道这样用不好,但是,不是应该先进入下一个循环么?

解决方案

 loop:for (var i =0 ;i<collection.length;i++){
        var flag=true;
        for(var j=0;j<a.length;j++){
            ...
            break loop;//注
        }
      }

注: 这样写只要符合条件, 都会结束loop这个循环. 也就是外层的循环.
题主的意思应该是直接跳出内层循环就行了. 所以不用加loop.

或者 如果break loop位置是想重新把外层循环进入下一次循环, 使用 continue loop

这篇关于javascript - for循环中可以使用两个break跳转到同一个指定位置么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆