如何中断forEach循环

场景

一般我们会使用forEach之类的语法,进行数组遍历,并且在遍历时进行到某一步的时候进行业务代码编写,这个就意味着需要打断循环
例如:

let arr = [1, 2, 3]
arr.forEach((item, index)=>{
	if (item == 2) {
		// 业务逻辑编写s
	}
})

语法

Array.forEach((currentValue, index, array, thisArg) => {})

  • currentValue: 数组中正在处理的当前元素。
  • index(可选): 数组中正在处理的当前元素的索引。
  • array(可选): forEach() 方法正在操作的数组。
  • thisArg(可选): 当执行回调函数时用作 this 的值(参考对象)。

使用break结束循环

let arr = [1, 2, 3]
arr.forEach(item => {
	if (item === 2) {
		break // 报错
	}
	console.log(item)
})

在这里插入图片描述


使用 continue结束循环

let arr = [1, 2, 3]
arr.forEach(item => {
	if (item === 2) {
		continue // 报错
	}
	console.log(item)
})

在这里插入图片描述

使用return结束循环

let arr = [1, 2, 3]
arr.forEach(item => {
    if (item === 2) {
    	return
    }
    console.log(item)
})

在这里插入图片描述
并没有结束掉循环,而是继续打印了3


所以我们可以使用try…catch来终止循环

let arr = [1, 2, 3]
try {
	arr.forEach(item => {
		if (item === 2) {
			throw('循环终止')
		}
		console.log(item)
	})
} catch(e) {
	console.log('e: ', e)
}

在这里插入图片描述
在循环到item == 2的时候终止了循环,所以没有了后续的打印


最后

官方给我们提供了一个方法来终止循环some()ervey()

// 使用 Array.some()
arr.some(item => {
	console.log('b: ',item) 
	return item === 2 // 当有数组有一项满足条件时结束并返回true
})

// 使用 Array.ervey()
arr.every(item => {
	console.log('c: ',item)
	return item !== 2 // 检查数字中是否每一项都满足条件,如果有一项不满足就结束循环并返回false
})

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值