美文网首页
数组去重排序3种方法

数组去重排序3种方法

作者: 新新_6261 | 来源:发表于2019-11-12 17:12 被阅读0次

第一种方法

var arr=[[1,2,2],[3,4,5,5],[6,7,8,9,[11,12,[12,13,[14]]]],10];
   function fn(arr){
       return arr.reduce(function(a,b){
           return a.concat(Array.isArray(b) ? fn(b) : b);
       },[]);
    }
    const myArray = fn(arr); 
    const array1 = [...new Set(myArray)]   //去重
    console.log(array1.sort((a, b)=>{   //排序
        return a - b;
    }))

第二种方法

var arr=[[1,2,2],[3,4,5,5],[6,7,8,9,[11,12,[12,13,[14]]]],10];
 var newarr = JSON.stringify(arr);
    newarr = newarr.replace(/\[|\]/g,''); //正则匹配去掉“[" 和"]"
    var newarr1 = undefined;
    newarr1 = JSON.parse('['+newarr+']');
    function noRepeat(newarr1){
      // 第一层for用来控制循环的次数
       for(var i=0; i<newarr1.length; i++){
         //第二层for 用于控制与第一层比较的元素
          for( var j=i+1; j<newarr1.length; j++){
             if(newarr1[i] == newarr1[j]){
                newarr1.splice(j,1);
                j--;   //删除后面的 即第 j个位置上的元素  删除个数 1 个
             }
          }
       }
       return newarr1;

    }
    var aa = noRepeat(newarr1);
    aa.sort(function(a,b){  // sort  升序 
      return a-b;
    });
    console.log(aa);

第三种方法

var arr=[[1,2,2],[3,4,5,5],[6,7,8,9,[11,12,[12,13,[14]]]],10];
 var newarr2 = undefined;
    newarr2 = eval('['+arr+']');
    function noRepeat2(newarr2){
       var newArray = [];
       for(var m=0; m<newarr2.length; m++){
         if(newArray.indexOf(newarr2[m])==-1){
            newArray.push(newarr2[m]);
         }
       }
       return newArray;
    }
    var aa1 = noRepeat2(newarr2);
    aa1.sort(function(a,b){
      return a-b;
    });
    console.log(aa1);

相关文章

网友评论

      本文标题:数组去重排序3种方法

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