美文网首页
处理数组的flat()及flatMap()方法

处理数组的flat()及flatMap()方法

作者: bryan_liu | 来源:发表于2022-06-07 11:29 被阅读0次

    flat()及flatMap()是es6提供的处理数组的方法,将多维数组处理成一维数组
    数组成员有时还是数组,Array.prototype.flat()用于将嵌套的数组拉平,变成一维数组,返回一个新数组,对原数据没有影响。

    [1,2,[3,4]].flat()
    //  [1,2,3,4]
    

    flat方法将子数组的成员取出来,添加在原来位置,默认只会拉平一层,flat方法的参数是整数,如果要拉平多层的嵌套数组输入对应的数字即可。

    [1, 2, [3, [4, 5]]].flat()
    //  [1,2,3,[4,5]]
    [1, 2, [3, [4, 5]]].flat(2)
    //  [1,2,3,4,5]
    

    如果不管多少层嵌套,都要转成一维数组,可以用Infinity关键字作为参数
    [1,[2,[3]]].flat(infinity)
    // [1,2,3]
    如果原数组有空位,flat方法会跳过空位。

    [1,2,,4,5].flat()
    //  [1,2,4,5]
    

    flatMap()方法对原数组的每个成员执行一个函数,相当于执行Array.prototype.map(),然后对返回值组成的数组执行flat()方法,该方法返回一个新数组,不改变原数组。

    [2,3,4].flatMap((x) => [x,x*2])
    //  [2,4,3,6,4,8]
    

    flatMap()只能展开一层数组

    相关文章

      网友评论

          本文标题:处理数组的flat()及flatMap()方法

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