JavaScript 中如何跳出(或终止)forEach 循环
- 在for循环中,可以使用break跳出循环、continue跳过当次循环。
let arr = [1,3,5,7,9];
let id = 5;
for (let i = 0; i < arr.length; i++) {if(arr[i]=== 1) continue; //跳过当次循环console.log(arr[i])if (arr[i] === id) { break; //满足条件,跳出循环}}
只会打印出3和5;说明到5就跳出了循环,而1跳过了当次循环。
- 在forEach循环中,可以通过抛出异常的方式跳出循环,通过return跳过当次循环。
var arr = [1,3,5,7,9];
var id = 5;
try {arr.forEach(function (curItem, i) {if(curItem === 1) return; //跳过当次循环console.log(curItem)if (curItem === id) {throw Error(); //满足条件,跳出循环}})} catch (e) {}
小结:
- forEach不能使用break和continue这两个关键字,它实现break效果可以通过抛出异常的方式,实现continue的效果可以直接使用return。
- forEach的优势就是,它传入的是一个回调函数,因此形成了一个作用域,它内部所定义的变量不会像for循环一样污染全局变量。
- forEach本身无法跳出循环,必须遍历所有的数据才能结束。
参考:https://blog.csdn.net/yiyueqinghui/article/details/105832438