for循环和forEach循环中中断和继续循环有些不一样的要注意
const list = ['a', 'b', 'c']
for (let i = 0; i < list.length; i++) {
console.log(`${i} ${list[i]}`)
}
如果您想在某个时候中断,比如说到达数组项b时,可以使用break语句:
const list = ['a', 'b', 'c']
for (let i = 0; i < list.length; i++) {
console.log(`${i} ${list[i]}`)
if (list[i] === 'b') {
break
}
}
你也可以使用break来跳出for…of…循环:
const list = ['a', 'b', 'c']
for (const value of list) {
console.log(value)
if (value === 'b') {
break
}
}
注意:无法中断forEach循环,因此如果需要跳出循环,请使用for或for..of。
但是当我们使用了多层for循环的时候,使用continue和break就无法跳出外层的循环了,所以我们需要使用一些技巧,来跳出外层循环。
1、使用label语句
这种方式很少有人知道,但是必须得记住这种常用的方法。
var array = [1,2,3,4,5];
jump:
for (let i = 0; i < array.length; i++) {
for (let j = 0; j < array.length; j++) {
if (i==2&&j==2) {
break jump;
}
console.log(i , j);
}
}
2、定义一个字段用来判断什么时候跳出外层循环
var array = [1,2,3,4,5];
var flag = false; // 为true时说明需要跳出外层循环
for (let i = 0; i < array.length; i++) {
for (let j = 0; j < array.length; j++) {
if (i==2&&j==2) {
flag = true;
break;
}
console.log(i,j);
}
if (flag) {
break;
}
}
打印出的结果和1中的结果一样。
3、当循环语句写在函数中时直接用return语句终止双重循环
var array = [1,2,3,4,5];
var func = function() {
for (let i = 0; i < array.length; i++) {
for (let j = 0; j < array.length; j++) {
if (i==2&&j==2) {
return;
}
console.log(i,j);
}
}
}
func();
打印出的结果和1中的结果一样,这里使用retun跳出函数,同时也跳出循环语句。
如何跳出forEach循环
首先需要注意的是在forEach中不能使用continue和break,否则会报如下错误
添加描述
1、使用retun结束当前循环
2、使用数组的some()函数或every()函数替代forEach
3、定义变量条件
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有