猿问

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


摇曳的蔷薇
浏览 3307回答 8
8回答

一只甜甜圈

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

红颜莎娜

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

Helenr

使用 every 和 some 函数

守候你守候我

直接用find就可以啦。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答