forEach方法跳出循环
2024-01-07 21:20:08
在for循环中,跳出循环有两种模式: break、continue;但是在forEach中,使用break或者continue都会报错;使用return在forEach不起作用,循环会继续执行,貌似充当了continue的角色。
forEach
方法的机制是对数组的每个有效元素执行一次callback
函数,然后return
、break
等只作用于一个函数,也就造成了无法跳出forEach
循环的问题,而是只能跳过当前函数的执行。
forEach跳出循环的方法
- 第一种:使用for代替forEach
?只能使用break或者continue;如果是针对函数,则使用return -
xh: //首先将循环命名 for(var i=0;i<10;i++){ for(var j=0;j<5;j++){ if(i==3 && j==4){ break xh; //跳出循环xh } } }
- 第二种:使用try...catch捕获异常实现(不建议使用)
-
function foo(arr ,item){ var BreakException= {}; try { arr.forEach(function(i) { if(i === item) throw BreakException; console.log(i); }); } catch(e) { if (e!==BreakException) throw e; } }
- 第三种:使用some或者every方法
?some()中使用eturn true跳出循环,注意:如果在函数中使用,只是跳出循环,而不会终止函数,后面的代码还是会执行
?every()中使用return false 跳出循环,但是要在对应的条件中加入return true,才可以执行后续的循环 -
正常的使用环境:如果是测试一个数组里的元素是否符合某条件,且需要返回一个布尔值则应该使用这两个方法。这里可用于跳出循环。
function foo(arr ,item){ arr.some(function(i) { if(i === item) return true; console.log(i); }); }
function foo(arr ,item){ arr.every(function(i) { if(i === item) return false; console.log(i); }); }
?
文章来源:https://blog.csdn.net/qq_38679823/article/details/135381055
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!