关于[JS] forEach循环return无法跳出的踩坑和解决方案
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于[JS] forEach循环return无法跳出的踩坑和解决方案相关的知识,希望对你有一定的参考价值。
参考技术A在leetcode上刷题的时候踩的坑,题目是这样的
简单思考了一下,用最简单的双循环就可以解决问题,于是习惯性用forEach遍历了两次
结果发现函数返回值是undefined
百度了一下,发现是因为forEach多次执行回调函数,回调函数中使用return没法直接终止forEach,只能终止单次的回调。所以return语句在forEach内部是无法跳出循环的。
解决方案:
1.方案一:js针对数组操作的另外两个方法some()与every()
2.方案二:for/while语句老实循环
总结原因还是对forEach方法理解不够到位
js 终止 forEach 循环
1.因为 forEach() 无法通过正常流程终止,所以可以通过抛出异常的方式实现终止。
try{ var array = ["first","second","third","fourth"]; // 执行到第3次,结束循环 array.forEach(function(item,index) { if(item == "third"){ throw new Error("EndIterative"); } console.log(item); // first second }); }catch(e){ if(e.message != "EndIterative") throw e; } // 下面的代码不影响继续执行 console.log("继续执行。。。");
.
以上是关于关于[JS] forEach循环return无法跳出的踩坑和解决方案的主要内容,如果未能解决你的问题,请参考以下文章