数组扁平化去重并降序排列

298 阅读1分钟
    var arr = [
      [3, , 1, 2, 2],
      [8, 5, 3, 4, 5, 5],
      [8, 9, 6, 7, [11, 12, 17, , [12, 13, [14]]]],
      10,
    ];
    /** 扁平化 :
     Array.prototype.flat()用于将嵌套的数组“拉平”,变成一维的数组。该方法返回一个新数      
     组,对原数据没有影响。
    */
    let flatArr = arr.flat(Infinity); 
    // Infinity关键字不管多少层都转成一层 或 4(一共四层)  
    // 注意:如果原数组有空位,flat()方法会跳过空位。
    console.log(flatArr); 
    // [3, 1, 2, 2, 8, 5, 3, 4, 5, 5, 8, 9, 6, 7, 11, 12, 17, 12, 13, 14, 10]
 
    // 去重:
    let SetArr = Array.from(new Set(flatArr)); 
    console.log(SetArr)
    //[3, 1, 2, 8, 5, 4, 9, 6, 7, 11, 12, 17, 13, 14, 10]
    
    // 排序
    let res = SetArr.sort(function (a, b) {
      return b - a;
    });
    console.log(res); 
    // [17, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]