ES10 中新增的 flat 和 flatMap 方法实现数组扁平化

阅读时长 3 分钟读完

在 JavaScript 中,数组是一种常用的数据类型。在实际开发中,经常会遇到需要将多维数组扁平化的情况。在 ES10 中,新增了两个方法:flat()flatMap(),可以方便地实现数组扁平化。

1. flat() 方法

flat() 方法可以将多维数组扁平化为一维数组。该方法可以接受一个参数,表示扁平化的深度。如果不传参数,则默认扁平化一层。

示例代码:

上面的代码中,flat(2) 表示将 arr 数组扁平化到第二层,即将 [[3, [4, 5]]] 扁平化成 [3, [4, 5]],最终得到一维数组 [1, 2, 3, 4, 5]

需要注意的是,flat() 方法会移除数组中的空位(undefined),例如:

上面的代码中,arr 数组中存在两个空位,使用 flat() 方法扁平化后,空位被移除了。

2. flatMap() 方法

flatMap() 方法在 flat() 方法的基础上,提供了对数组元素的映射功能。该方法接受一个函数作为参数,该函数会被应用到数组的每个元素上,并返回一个新的数组。然后使用 flat() 方法将新数组扁平化。

示例代码:

上面的代码中,flatMap() 方法将数组 arr 中的每个元素乘以 2,得到一个新数组 [2, 4, 6],然后使用 flat() 方法将其扁平化成一维数组。

需要注意的是,flatMap() 方法会自动去除返回值中的空位(undefined),例如:

上面的代码中,函数返回值中包含了一个空位(undefined),使用 flatMap() 方法后,该空位被自动去除了。

3. 总结

ES10 中新增的 flat()flatMap() 方法可以方便地实现数组扁平化。flat() 方法可以将多维数组扁平化为一维数组,flatMap() 方法在 flat() 方法的基础上,提供了对数组元素的映射功能。需要注意的是,flat()flatMap() 方法会移除数组中的空位(undefined)。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65c891beadd4f0e0ff25c866

纠错
反馈