为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript中跳不出的forEach循环,知道了结果,但是由何原因导致的呢?

JavaScript中跳不出的forEach循环,知道了结果,但是由何原因导致的呢?

海绵宝宝撒 2018-09-02 08:04:41
在项目开发过程中会使用到forEach循环,在平时使用过程中未留意到如下的现象:var arr=[1,2,3];// 循环一console.log('循环一:'); arr.forEach(function(item) {    if (item > 2) {        return false;     }    console.log(item); });// 循环二console.log('循环:'); arr.forEach(function(item) {    console.log(item);    if (item > 2) {        return false;     } });可以看到循环一是想要的结果,而循环二却执行完循环了,这是为何呢?
查看完整描述

3 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

  1. ForEach(callback)这是一个回调方法,你return false并没有任何意义,想停止可以用for of

  2. 事实上都执行了3次回调,只是循环1中你第3次没打印而已。


查看完整回答
反对 回复 2018-09-02
?
九州编程

TA贡献1785条经验 获得超4个赞

forEach满足条件后并不会跳出循环。

循环一的输出语句是在return false的后面

循环二的输出语句是在return false的前面,所以造成了这种假象。

其实你应该用some()或者every();


查看完整回答
反对 回复 2018-09-02
  • 3 回答
  • 1 关注
  • 955 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信