forEach方法跳出循环
·
在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); }); }
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)