Jquery Can';不要在循环外中断(即使它在循环中!)

Jquery Can';不要在循环外中断(即使它在循环中!),jquery,each,break,Jquery,Each,Break,我试图打破一个循环,如果某个条件是真的。我的代码工作正常,直到我尝试添加入侵。VS2010和IE8运行时出现的intellisense错误都告诉我,我不能突破循环之外的部分,但我认为我不是 我完全糊涂了,希望有人能指出一些明显的我忽略了的东西 var value1 = "hello"; $.each(myJsonObject.SomeCollection, function () { if (value1 == this.value2) { alert("Found

我试图打破一个循环,如果某个条件是真的。我的代码工作正常,直到我尝试添加入侵。VS2010和IE8运行时出现的intellisense错误都告诉我,我不能突破循环之外的部分,但我认为我不是

我完全糊涂了,希望有人能指出一些明显的我忽略了的东西

var value1 = "hello"; 

$.each(myJsonObject.SomeCollection, function () {

    if (value1 == this.value2) {
        alert("Found it!");
        exitFlag = true;
    }

    if (exitFlag) break;
});

简单地
返回false
退出
。每个
循环:

我们可以一次中断
$.each()
循环 通过使 回调函数返回
false
。 返回非false与
continue
语句在for循环中;信息技术 将立即跳到下一个 迭代

使用jQuery
。每个
迭代器与使用常规循环不同,因此这里不能使用
break
。这就像这样,这是不可能的:

for (var i = 0; i < 10; ++i) {
  myFunc(i);
}

function myFunc(i) {
  if (i > 5) {
    break; // ILLEGAL
  }
}
for(变量i=0;i<10;++i){
myFunc(i);
}
函数myFunc(i){
如果(i>5){
break;//非法
}
}

简单地
返回false
退出
。每个
循环:

我们可以一次中断
$.each()
循环 通过使 回调函数返回
false
。 返回非false与
continue
语句在for循环中;信息技术 将立即跳到下一个 迭代

使用jQuery
。每个
迭代器与使用常规循环不同,因此这里不能使用
break
。这就像这样,这是不可能的:

for (var i = 0; i < 10; ++i) {
  myFunc(i);
}

function myFunc(i) {
  if (i > 5) {
    break; // ILLEGAL
  }
}
for(变量i=0;i<10;++i){
myFunc(i);
}
函数myFunc(i){
如果(i>5){
break;//非法
}
}

jQuery可能没有为
.each()
函数使用循环。可能返回
false
会起作用(在Python中是这样的):


jQuery可能没有为
.each()
函数使用循环。可能返回
false
会起作用(在Python中是这样的):


如果您的集合可以像数组一样进行处理、导航和索引,只需使用一个常规循环并从中中断即可。或者,如果您非常热衷于使用
$。每个
迭代器来完成这样一件简单的事情,那么只需让您的函数返回false(这将有效地使
$。每个
迭代器停止)


为了加强我刚才所说的,如果该集合可以被视为一个数组,只需使用一个普通循环。除非你有很好的理由不这样做,否则一定要使用最简单、最干净的工具来完成工作

如果您的集合可以像数组一样进行处理、导航和索引,只需使用常规循环并从中中断即可。或者,如果您非常热衷于使用
$。每个
迭代器来完成这样一件简单的事情,那么只需让您的函数返回false(这将有效地使
$。每个
迭代器停止)


为了加强我刚才所说的,如果该集合可以被视为一个数组,只需使用一个普通循环。除非你有很好的理由不这样做,否则一定要使用最简单、最干净的工具来完成工作

我会选择在调用
alert()
之后立即返回,使其更简单,因为
exitFlag
变量不会向示例代码的结构添加任何值。您不能从if语句中的循环返回,但可以吗?我会选择在调用
alert()之后立即返回,使其更简单
因为
exitFlag
变量不会给示例代码的结构添加任何值。您不能从if语句中的循环返回,但是可以吗?我先尝试了,它给了我一个类似的问题-稍后将重试,谢谢,我先试过了,它给了我一个类似的问题,不过我会稍后再试,谢谢