for 和 forEach 使用return,是跳出当前的循环,还是整个循环
Posted 胖虎
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了for 和 forEach 使用return,是跳出当前的循环,还是整个循环相关的知识,希望对你有一定的参考价值。
return必须是使用在函数里面的
return有2个作用,结束函数和返回结果
let aa = function() {
for(var i = 0; i < 5; i++) {
console.log(i)
if (i == 3) {
// return
// break // 跳出整个循环
// continue // 跳出当前循环
}
}
}
aa() // 0 1 2 3
let bb = function () {
let arr = [1, 2, 3, 4, 5]
arr.forEach(item => {
console.log(item)
if (item == 3) {
console.log('item')
// return
// break // 语法报错
console.log('return')
}
})
}
bb() // 1 2 3 item 4 5
以上得出: for 使用return 、 break,是跳出了整个循环。
forEach 使用return只是跳出了当前的循环, 使用break报语法错误。
forEach 无法在所有元素都传递给调用的函数之前终止遍历
那么如何在forEach 跳出整个循环,可以使用try ,然后主动抛出一个错误:
let bb = function () {
let arr = [1, 2, 3, 4, 5]
try {
arr.forEach(item => {
console.log(item)
if (item == 3) {
console.log('item')
// return
// break // 语法报错
throw new error // 主动去抛出一个错误
console.log('return')
}
})
} catch {
console.log('跳出来了')
}
}
bb() // 1 2 3 item 跳出来了
try/catch/finally
try 语句允许我们定义 在执行的时候 进行错误测试的 代码块
catch 就是在try语句遇到错误的时候,所执行的代码
finally 就是在 try 和catch之后 ,无论有无异常都执行
转自:https://blog.csdn.net/qq_42341025/article/details/99974038
let arr = [7,5,4,3,1,5,2,6,6,3,4]
arr.forEach((item,index) => {
if(index === 3) {
return //不能终止循环
}
})
也可以用for代替forEach
let arr = [7,5,4,3,1,5,2,6,6,3,4]
for(let i = 0; i < arr.length; i ++) {
if(i === 3) {
return //可以终止循环
}
}
以上是关于for 和 forEach 使用return,是跳出当前的循环,还是整个循环的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript:在forEach里面return没有效果
JavaScript:在forEach里面return没有效果
JavaScript中for循环的break,continue和return。