jquery each 和for怎么跳出循环终止本次循环

JavaScript016

jquery each 和for怎么跳出循环终止本次循环,第1张

jquery each 和for跳出循环终止本次循环的方法:

在jquery中的each循环中是默认要写回调函数的返回值的,一般设置为false就默认跳出循环了。

比如:

var toReturn

$.each(someArray, function(i) {

$('body').append('->'+i+'<br />')

if(someArray[i] == word) {

toReturn = someArray[i]

return false//这里找到toReturn后就直接返回,不再继续循环。

}

})

return toReturn //返回找到的对象。

在一般的for循环里面,直接利用break即可。

比如:

for (i = 0i <10i++) {

if (i === 3) {

break//这里强制退出循环

}

text += "The number is " + i + "<br>"

}

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

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

结果发现函数返回值是undefined

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

解决方案:

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

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

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

each函数是一个多执行函数,它会把所有匹配到的元素都执行一次。第一,如果退出当前执行,请用return。第二种,如果要停止运行到剩下未执行,那么我还没有找到方法,建议在前面的选择器上做好范围限制,避免这种情况的发生。