美文网首页
用js写一个数组去重函数

用js写一个数组去重函数

作者: 云梦之浦 | 来源:发表于2017-11-17 19:13 被阅读29次

    自己第一时间想到的是第三种方法,利用两层循环来判断是否给新数组添加新元素,这种属于“笨办法”,然后在网上看了一些方法,觉得利用indexof很方便,知识还是要活学活用啊!


    第一种方法:这种方法很简单,先遍历然利用indexof来判断是否给新创建的数组添加新元素。

    function deWeight (arr){

                    var resultarr=[];

                    for(var i=0; i<arr.length; i++){

                            if(resultarr.indexof(arr[i])==-1){

                                    resultarr.push(arr[i])

                            }

                    }

                    console.log(resultarr);

                    return resultarr;

    }

    第二种方法:创建一个空的数组存放去重后的数组,创建一个空对象以便于和原数组里边的值去对比,如果没有就添加到新的数组里边和这个对象里边,并赋值为一,如果有就继续下一项。

    fucntion deWeight(arr){

        var res=[];

        var json={};

        for (var i=0;i<arr.length;i++){

             if (!json[arr[i]]) {

                res.push(arr[i]);

                json[arr[i]]=1;

            }

        }

    return res

    }

    第三种方法:传统的遍历数组中的每一个元素,然后两个数组去对比。

    function deWeight(arr) {

        var res=[]; var tab;

        for (var i=0; i<arr.length; i++){

        tab=false;

            for (var j=0; j<res.length; j++){

                if(res[j]==arr[i]){

                    tab=true;

                    break;

                } 

            }

            if(!tab){

                res.push(arr[i]);

            }

        }

    return res;

    }

    相关文章

      网友评论

          本文标题:用js写一个数组去重函数

          本文链接:https://www.haomeiwen.com/subject/mwilvxtx.html