注意forEach不能使用return跳出循环

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了注意forEach不能使用return跳出循环相关的知识,希望对你有一定的参考价值。

参考技术A

一直混淆了概念—关于跳出循环或终止方法,认为一般循环 return 就可以终止,踩坑的是 for Each 使用 return 就不可以跳出循环
for: 最初使用的就是 for ,可以通过 break 或 return 跳出,唯一需要注意的是: 需要在函数中使用 ,否则报错

forEach: 这个就是使用 break 报错,使用 return 不能跳出循环,自己也踩坑了,去学习了下大家解决此问题两种方式:
1. try...catch 捕获异常实现

2.使用 every 、 some 代替,前者内部 return false 跳出整个循环,后者内部 return true 跳出整个循环

for...in/ of, forEach 循环

ES5
forEach缺陷:
不能用break语句跳出循环且不能在这个封闭的函数内使用return语句。
for in // 比较适用在对象上面的一个循环遍历,但是数组也可以用

var arry = [1, 2, 3, 4, 5]
for (index in arry) {
console.log(index) // 0,1,2,3,4
if (index === 3) {
break; // 不可以被打断
}
console.log(arry[index]) // 1,2,3,4,5
console.log(typeof index) // string
}


ES6
for of // 支持集合 ---试了一下chrome,现在是支持的


for (index of arry) {
console.log(index) // 0,1,2,3,4
if (index === 3) {
break; // 可以被打断
}
console.log(arry[index]) // 1,2,3,4,5
console.log(typeof index) // number
}

以上是关于注意forEach不能使用return跳出循环的主要内容,如果未能解决你的问题,请参考以下文章

在Java8的foreach()中使用return/break/continue,不会跳出循环

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

for 和 forEach 使用return,是跳出当前的循环,还是整个循环

js跳出for循环

JavaScript中for循环的break,continue和return。

foreach循环的跳出