Javascript “return”关键字在“forEach”函数中是什么意思?

Javascript “return”关键字在“forEach”函数中是什么意思?,javascript,arrays,Javascript,Arrays,$(“按钮”)。单击(函数(){ [1,2,3,4,5].forEach(函数(n){ 如果(n==3){ //它应该在这里爆发,之后不会发出任何警报 返回错误 } 警报(n) }) }) 单击“我”“返回”退出当前功能,但迭代仍在继续,因此您将获得“下一个”项,该项将跳过if并提醒4 如果需要停止循环,应使用普通的for循环,如下所示: $('button').click(function () { var arr = [1, 2, 3, 4, 5]; for(var i = 0

$(“按钮”)。单击(函数(){
[1,2,3,4,5].forEach(函数(n){
如果(n==3){
//它应该在这里爆发,之后不会发出任何警报
返回错误
}
警报(n)
})
})


单击“我”
“返回”退出当前功能,但迭代仍在继续,因此您将获得“下一个”项,该项将跳过
if
并提醒4

如果需要停止循环,应使用普通的
for
循环,如下所示:

$('button').click(function () {
   var arr = [1, 2, 3, 4, 5];
   for(var i = 0; i < arr.length; i++) {
     var n = arr[i]; 
     if (n == 3) {
         break;
      }
      alert(n);
   })
})
$(“按钮”)。单击(函数(){
var-arr=[1,2,3,4,5];
对于(变量i=0;i
您可以在此处阅读更多关于js break&continue的信息:

来自:

除了抛出异常之外,无法停止或中断
forEach()
循环。如果需要这种行为,那么
forEach()
方法是错误的工具

提前终止可通过以下方式完成:

  • 简单的循环
  • A 环路
其他数组方法:、和使用返回truthy值的谓词测试数组元素,以确定是否需要进一步迭代


关于
$('button')。单击(function(){})
?如果(n>=3){return false
return
没有中断循环,那么
break
会中断循环!有趣的是,如果更改第2行并首先将数组分配给一个变量,则示例的行为会有很大不同,如:
var r=[1,2,3,4,5];r.forEach(函数(n){
。在这种情况下,它将打破循环。你是什么意思???我这样写是为了便于理解…代码可能会缩短一点,但它得到的正是你想要的,而不需要像这里的其他答案那样对数组进行额外的迭代:-)你需要先声明数组。你想在数组长度内使用一个循环。你需要一个索引来访问数组元素……太多了:)这就是我的意思,你已经在你的示例中声明了数组,我刚刚添加了一个引用(var arr)您还可以将
for
循环更改为
for in
,或
while
…所有这些选项都比创建新函数好得多,速度更快,并在其他示例中抛出一个错误。无论是性能方面,还是干净的代码…祝您好运:-)这个答案澄清了我的确切问题n关于有时返回
forEach
循环是否有意义,当您不希望在给定特定条件下执行循环逻辑的其余部分时,它绝对会这样做!使用
forEach
,并抛出错误以停止迭代是一种非常糟糕的做法,而且是一种真正的过度杀伤力。在您的情况下,您可能会我不是真的想迭代所有数组(forEach…),但你想运行直到满足某个语句。你应该使用一个简单的循环(
while
for
for in
do while
)。我同意@RonenCypis…,并建议你使用
some()
新数组之前,每个人都有一个计划(5)
显示…
(新数组(5))。每个(e=>e==“也许for loop+break毕竟不是个坏主意?”)
由于稀疏数组而产生令人惊讶的结果。