前言:
在实际写for循环去遍历数组的时候,当我们找到满足某个条件的数据并且为了节约浏览器的性能,免不了有要结束for循环的需求,以下是常见的跳出for循环的方法。
如何跳出for单循环
1、终止for单循环使用break
var array = [1,2,3,4,5];
for (let index = 0; index < array.length; index++) {
const element = array[index];
console.log(element);
if (element==3) {
break;
}
}
打印出的结果为1,2,3,当满足3这个条件时终止循环语句。
2、结束当前循环,进入下个循环时使用continue
var array = [1,2,3,4,5];
for (let index = 0; index < array.length; index++) {
const element = array[index];
if (element==3) {
continue;
}
console.log(element);
}
打印出的结果为1,2,4,5,当满足3这个条件时跳出当前循环,不执行continue后面的语句,转而执行下个循环。
3、当循环语句写在函数中时直接用return语句终止循环,作用相当于break
var func = function() {
var array = [1,2,3,4,5];
for (let index = 0; index < array.length; index++) {
const element = array[index];
console.log(element);
if (element==3) {
return;
}
}
}
func();
打印出的结果为1,2,3,当满足3这个条件时终止循环语句。
如何跳出for双重循环
但是当我们使用了多层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);
}
}
打印出的结果如图所示,当满足i==j==2时终止了双重循环。
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结束当前循环
var array = [1,2,3,4,5];
array.forEach((el,i)=>{
if (el==3) {
return;
}
console.log(el);
})
打印出的结果为1,2,4,5,当满足3这个条件时跳出当前循环,不执行return后面的语句,转而执行下个循环,其作用相当于for循环里使用continue。
2、使用数组的some()函数或every()函数替代forEach