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循环的时候,使用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