试想有一个数组,我们循环的过程当符合某个条件的时候中断当前的循环,我们要如何实现呢
想到了return和break,那么来试试吧
能实现循环的方法有很多种,我们找几个有代表性的来试试
先来看最简单的for
let array = [1,2,3,4,5,6,7,8,9,10]
for(let i=0; i<array.length; i++){
let value = array[i]
if(value == 5){
break
}
console.log(value)
}
// 1,2,3,4
可以看到用break可以实现普通的for循环
下面再来试试return
let array = [1,2,3,4,5,6,7,8,9,10]
for(let i=0; i<array.length; i++){
let value = array[i]
if(value == 5){
return false
}
console.log(value)
}
// Uncaught SyntaxError: Illegal return statement
报错了,所以return不能直接终止for循环,其实这里有个误区,想一想js中return要用在哪里呢?
官方解释:在JavaScript中,return语句用于退出函数,并可选地返回一个值。
那我们来给上面套一个函数在试试
let array = [1,2,3,4,5,6,7,8,9,10]
function testFn(){
for(let i=0; i<array.length; i++){
let value = array[i]
if(value == 5){
return false
}
console.log(value)
}
}
//1,2,3,4,false
成功了,所以我们也可以利用return来退出循环,但前提是循环需要放到一个函数中.
写循环的时候我们有时候也会用到数组循环的遍历方法,我们找一个forEach来举例
let array = [1,2,3,4,5,6,7,8,9,10]
array.forEach(item => {
if(item == 5){
break
}
console.log(item)
})
// Uncaught SyntaxError: Illegal break statement
看到了,forEach中使用break不能终止循环,会报错,那么试试return吧
array.forEach(item => {
if(item == 5){
return false
}
console.log(item)
})
// 1,2,3,4,5,6,7,8,9,10
不报错,但是也终止不了循环哈,那要如何做呢,来看下面
try {
array.forEach(item => {
if(item == 5){
throw Error('EndIterative')
}
console.log(item)
})
} catch (error) {}
// 1,2,3,4
所以,终止数组的遍历方法的方案是通过try catch,然后在中循环处抛出一个错误,这样就可以实现终止循环了