javascript - js中forEach跳出循环问题
天蓬老师
天蓬老师 2017-04-11 11:57:12
[JavaScript讨论组]

去重的时候用for循环是没什么问题的

var arr=[2,3,2,2,2,4,5],
            arr2=[];
        function find(arr2,ele){
          for(var i= 0,len=arr2.length;i<len;i++){
              if(arr2[i]==ele) return true;
          }
            return false;
        }

        for(var i= 0,len=arr.length;i<len;i++){
            if(!find(arr2,arr[i])){
                arr2.push(arr[i]);
            }
        }

改用forEach的时候

 function find(arr2,ele){
            arr2.forEach(function(item,i){
                if(item==ele) return true;
            });
            return false;
        }

        arr.forEach(function(item,i,array){
            if(!find(arr2,arr[i])){
                arr2.push(arr[i]);
            }
        })

发现结果不对forEach貌似没有在return的时候跳出循环,求教应该如何写呢。。。。

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(6)
怪我咯

forEach函数不支持break,可以用every函数替代:

function find(arr2, ele) {
  arr2.every(function (item, i) {
    if (item === ele) {
      return false
    }
    return true
  })
}

return false跳出循环,return true继续循环,详见 https://developer.mozilla.org...

伊谢尔伦

https://segmentfault.com/q/10...

高洛峰

forEach没办法终止(异常除外。)

伊谢尔伦

貌似可以加标签,可以跳回标签处,待我去验证下!

伊谢尔伦

使用 every 和 some 函数

PHP中文网
p.localData.forEach(function(value,index,array){
    if(value.id == id && value.id != '-1'){
        return value.promotionType;
    }
});

当条件满足时,结果确是不正确的。它会循环完所有项!

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号