Javascript 如何从for循环中退出(转义)函数?

Javascript 如何从for循环中退出(转义)函数?,javascript,for-loop,foreach,Javascript,For Loop,Foreach,理解嵌套循环或其他控件和函数可以应用多少转义(返回或退出)是一个理论问题 我对此感到困惑,因为我被困在代码中 我无法停止在select元素中迭代选项s 我已经尝试了return和returnfalse,但是没有成功 一般来说,我们如何做到这一点 function() { for (...) { if (...) { $(...).each(function() { // You have to exit outer

理解嵌套循环或其他控件和函数可以应用多少转义(返回或退出)是一个理论问题

我对此感到困惑,因为我被困在代码中

我无法停止在
select
元素中迭代
选项
s

我已经尝试了
return
returnfalse
,但是没有成功

一般来说,我们如何做到这一点

function() {
    for (...) {
        if (...) {
            $(...).each(function() {
               // You have to exit outer function from here
            });
        }
    }
}

就像大多数语言一样。退出循环的关键字是
break
更多信息请点击此处:

我会这样做:

  • 创建一个布尔变量来检查每个循环,如果该变量为true,则退出循环(对每个循环执行此操作)

注意这不是正确使用
try-catch
,因为
try-catch
应该严格用于错误处理,而不是跳转到代码的不同部分-但它对您所做的工作有效

如果
return
不适合您,请尝试使用
try catch

try{
$(sentences).each(function() {
    var s = this;
    alert(s);
    $(words).each(function(i) {
        if (s.indexOf(this) > -1)
        {
            alert('found ' + this);
            throw "Exit Error";
        }
    });
});
}
catch (e)
{
    alert(e)
}

取自的代码在循环之间使用共享变量。如果要退出,请在
each()
循环结束时将其翻转到
true
,并在
for循环结束时检查其是否为
true
。如果是,则中断循环。

也可以通过更改迭代器值退出循环

var arr = [1,2,3,4,5,6,7,8,9,10];

for(var i = 0;i<arr.length;i++){

  console.log(i);
  compute(i);

  function compute(num){
    //break is illegal here
    //return ends only compute function
    if(num>=3) i=arr.length;
  }

}
var-arr=[1,2,3,4,5,6,7,8,9,10];
对于(变量i=0;i=3)i=arr.length;
}
}

“标签”是范围过程(如断开循环)的解决方案。这是多年后我意识到的一个内在答案:

你在用什么语言?php?从他帖子中的链接判断,我会说jquerySorry@Evan javascript。我想你可以使用returnfalse@PSR我使用了
return false
,@nalply yes我使用了
each()
。只是想知道下面的投票人是谁?我的回答有什么不正确的地方?如果我写评论的重点是我们
中断
上面说的break代码在那里是非法的。我不知道你是否意识到,但是
for each()
不是javascript代码。至少我不知道我以前说过。并非wc3schools.com上的所有内容都是错误的。如果我发布的链接包含正确的信息,请关闭它。此代码运行良好,没有理由投反对票。需要解释吗?try-catch应该用于错误处理,而不是用于跳转到脚本的不同部分。@我编辑了nalply,不确定您想要的是什么诚实让我们来看看是的@Konstantin D这将解决我的问题。但是我们应该说没有直接的解决办法吗?@caglaror我会说是的。但是嵌套循环呢?内部循环将继续迭代。
var arr = [1,2,3,4,5,6,7,8,9,10];

for(var i = 0;i<arr.length;i++){

  console.log(i);
  compute(i);

  function compute(num){
    //break is illegal here
    //return ends only compute function
    if(num>=3) i=arr.length;
  }

}