用js写一个数组去重函数

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


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

function deWeight (arr){

                var resultarr=[];

                for(var i=0; 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

         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

    tab=false;

        for (var j=0; j

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

                tab=true;

                break;

            } 

        }

        if(!tab){

            res.push(arr[i]);

        }

    }

return res;

}

你可能感兴趣的:(用js写一个数组去重函数)