数组去重的四种方法

  • 利用双for循环去重
var ary=[1,0,2,1,2,3,5,5,3,3,3,4,2,1,1,1,2,4,5,3,0,0,2,1,0];
    function fn(arr) {
        for(var i=0;i<arr.length-1;i++){
            for(var j=i+1;j<arr.length;j++){
                if(arr[j]==arr[i]){
                    arr.splice(j,1);
                    j--;
                }
            }
        }
        return arr;
    }
    console.log(fn(ary));
  • 利用对象数组去重
var ary=[1,0,2,1,2,3,5,5,3,3,3,4,2,1,1,1,2,4,5,3,0,0,2,1,0];
    function fn(arr) {
        var obj={};
        for (var i=0;i<arr.length;i++){
            var cur=arr[i];
            if (obj[cur]){
                arr.splice(i,1);
                i--;
            }else {
                obj[cur]="已存";
            }
        }
        obj=null;
        return arr;
    }
    console.log(fn(ary));
  • 利用对象数组去重并且记录重复次数
var ary=[1,0,2,1,2,3,5,5,3,3,3,4,2,1,1,1,2,4,5,3,0,0,2,1,0];
    function fn(arr) {
        var obj={};
        for(var i=0;i<arr.length;i++){
            var cur=arr[i];
            if(obj[cur]){
                ary.splice(i,1);
                obj[cur]++;
                i--;
            }else {
                obj[cur]=1;
            }
        }
        console.log(obj);
        return arr;
    }
    console.log(fn(ary));
  • 通过创建一个新数组进行数组去重
var ary=[1,0,2,1,2,3,5,5,3,3,3,4,2,1,1,1,2,4,5,3,0,0,2,1,0];
    function fn(arr) {
        var ary=[];
        for (var i=0;i<arr.length;i++){
            if(ary.indexOf(arr[i])==-1){
                ary.push(arr[i]);
            }
        }
        return ary;
    }
    console.log(fn(ary));
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。