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

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()方法)