关于[JS] forEach循环return无法跳出的踩坑和解决方案

JavaScript023

关于[JS] forEach循环return无法跳出的踩坑和解决方案,第1张

在leetcode上刷题的时候踩的坑,题目是这样的

简单思考了一下,用最简单的双循环就可以解决问题,于是习惯性用forEach遍历了两次

结果发现函数返回值是undefined

百度了一下,发现是因为forEach多次执行回调函数,回调函数中使用return没法直接终止forEach,只能终止单次的回调。所以return语句在forEach内部是无法跳出循环的。

解决方案:

1.方案一:js针对数组操作的另外两个方法some()与every()

2.方案二:for/while语句老实循环

总结原因还是对forEach方法理解不够到位

$(".imgCla").each(function(i,e){

    alert($(e).attr("src"))

})

你的页面存在问题,img 标签的ID一样。

我看你的代码里面只有img标签使用imgCla

所以选择获取所有 class="imgCla"的标签

js跳出each循环returnfalse跳出循环,returntrue进入下一个循环js跳出for循环break直接退出for这个循环。这个循环将不再被执行!continue直接跳出本次for循环。下次继续执行。return语句就是用于指定函数返回的值。即使函数主体中还有其他语句,函数执行也会停止!