介绍
在 ECMAScript 2019(ES10)中,新增了两个数组扁平化方法,分别是 Array.flat
和 Array.flatMap
。两个方法都是数组的实例方法,并且都是可选的。
Array.flat
Array.flat
方法用于将嵌套的数组扁平化至指定的深度。该方法接收一个可选参数depth
,用于指定扁平化的深度,默认值为1。
语法
arr.flat([depth])
参数
depth
(可选):指定扁平化的深度。默认值为1。
返回值
扁平化后的新数组。
示例
const arr = [1, 2, [3, 4, [5, 6]]]; const flatArr = arr.flat(2); // [1,2,3,4,5,6]
Array.flatMap
Array.flatMap
方法用于通过先映射每个元素,再将结果扁平化至指定深度的新数组。该方法的回调函数接受3个参数,它们分别是当前元素、当前索引和原数组。
语法
arr.flatMap(callback[, thisArg])
参数
callback
:回调函数,接受3个参数,分别为当前元素、当前索引和原数组。thisArg
(可选):回调函数中 this 的值。
返回值
扁平化后的新数组。
示例
const arr = [1, 2, 3]; const flatArr = arr.flatMap(x => [x, x * 2]); // [1, 2, 2, 4, 3, 6]
指导意义
- 性能优化:在开发过程中,我们常常需要对一个二维数组进行处理,此时可以使用
Array.flat
将其扁平化,以减少数组的嵌套层数,提高性能。 - 代码简化:
Array.flatMap
可以帮助我们简化代码,避免使用map
和flat
两个方法嵌套使用的复杂度。
总结
ES10 中新增的 Array.flat
和 Array.flatMap
方法为处理数组提供了更多灵活性和效率,可以帮助我们更好地处理数组数据。当我们需要处理嵌套数组或者将一维数组展开成多维数组时,可以优先选择使用这两个方法。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/648eaf3f48841e9894d11e22