我在一个IF条件中有一个each循环,在这个循环中我又有了IF ELSE条件,如果这个each循环中的if条件匹配,我希望我的编译器跳出外部IF条件,在这个IF条件中,我有这个each循环,
如果我使用return或return false,它会将我抛出每个循环之外,而不是外部If条件之外。
if (localStorage.getItem('Token')) {
$(".menu-highlight li a").each(function () {
var aTag= $(this).text();
if(route==aTag){
this.router.navigate([route]);
}
else{
return;
}
});
alert('User is already logged In');
}我希望编译器跳出这个IF (if (localStorage.getItem('Token')) {})条件
发布于 2017-02-06 14:53:05
没有直接的方法可以做到这一点(如果使用forin,这可能会很容易)。尝试按照添加自定义变量(在我的示例中是breakTheLoop)的方式来识别和跳过每个循环中的执行。
编辑:数组1,我中断了foreach并重置了外部if条件中的代码。forloop的数组2,Condition is not broaken,of forloop已完成,并且执行了外部If条件中的代码重置。
var array1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var array2 = [1, 2, 3, 4, 5];
console.log("Array 1");
sampleFunction(array1);
console.log("Array 2")
sampleFunction(array2);
function sampleFunction(intArray) {
var someFlag = true;
var breakTheLoop = false;
if (someFlag == true) {//First If Condition
console.log("Outer IF Condition");
for (var i = 0; i < intArray.length; i++) {
if ($(this)[0] > 5) {//Inner IF Else Condition
console.log("Reached 6, break the loop");
breakTheLoop = true;
break; //Flag to indicate to skip forach execution
}
else {
console.log("Less than 6 : Value - " + intArray[0]);
}
}
if (!breakTheLoop) {
console.log("Outer IF, After For - 1");
console.log("Outer IF, After For - 2");
console.log("Outer IF, After For - 3");
}
}
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
https://stackoverflow.com/questions/42061583
复制相似问题