zoukankan      html  css  js  c++  java
  • 将数组扁平化并去除其中重复数据,最终得到一个升序且不重复的数组

    var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];
    var s = Array.from(new Set(arr.flat(Infinity))).sort((a,b)=>{ return a-b})
    console.log(s)  //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
    数组的成员有时还是数组,Array.prototype.flat()用于将嵌套的数组“拉平”,变成一维数组。该方法返回一个新数组,对原数据没有影响。
    [1, 2, [3, 4]].flat() // [1, 2, 3, 4]
    原数组的成员里面有一个数组,flat()方法将子数组的成员取出来,添加在原来的位置。
    flat()默认只会“拉平”一层,如果想要“拉平”多层的嵌套数组,可以将flat()方法的参数写成一个整数,表示想要拉平的层数,默认为1。
    如果不管有多少层嵌套,都要转成一维数组,可以用Infinity关键字作为参数。
    如果原数组有空位,flat()方法会跳过空位。
  • 相关阅读:
    [HEOI2015]兔子与樱花
    [HNOI2015]亚瑟王
    [JSOI2011]分特产
    某考试 T3 sine
    [JSOI2015]最小表示
    51NOD 1258 序列求和 V4
    Codeforces 622F The Sum of the k-th Powers
    Loj #6261. 一个人的高三楼
    [HAOI????] 硬币购物
    bzoj4318 OSU!
  • 原文地址:https://www.cnblogs.com/bao2333/p/10824878.html
Copyright © 2011-2022 走看看