javascript - for循环中可以使用两个break跳转到同一个指定位置么?
本文介绍了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屋!
查看全文