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了,我知道这样用不好,但是,不是应该先进入下一个循环么?


缥缈止盈
浏览 1045回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript