javascript - js中forEach跳出循环问题

查看:90
本文介绍了javascript - js中forEach跳出循环问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

去重的时候用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的时候跳出循环,求教应该如何写呢。。。。

解决方案

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...

这篇关于javascript - js中forEach跳出循环问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆