JavaScript如何跳出for循环 - 程序员阿田

时间:2024-03-06 08:40:30

JavaScript如何跳出for循环

前言:

在实际写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循环的时候,使用continuebreak就无法跳出外层的循环了,所以我们需要使用一些技巧,来跳出外层循环。

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