除了for循环遍历数组。
像map、forEach之类的遍历数组的方法能不能当满足条件后跳出循环,我发现break和return在map和forEach里是无效的。
最简单的
for(var i=0;i<arr.length;i++){
...
}
肯定可以使用break
如果只是对数组而言的话,且数组原型上没有添加自定义属性、方法,那也可以用for-in啊
楼上有人提到了es6的for-of,是比较优雅的方法。
for(var i in arr){
if(arr.hasOwnProperty(i)){
...
}
}
https://developer.mozilla.org...
你可以自己修改Array.prototype.map()
的行为,但是map/reduce/forEach/filter 本身就不是和for一样用的,他们的目的就是遍历整个数组。
中间break可以for或者while。
强制加上跳出条件也可以,但是不是很建议。
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
forEach、map、filter、reduce、every、some 都会有 break 和 continue 不生效的问题,因为是在function中,但function解决了闭包陷阱的问题;要使用 break、continue 可以使用 for、for...in、for...of、while。