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 环路
关于
$('button')。单击(function(){})
?如果(n>=3){return falsereturn
没有中断循环,那么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毕竟不是个坏主意?”)
由于稀疏数组而产生令人惊讶的结果。