ES2019 中的 Array.prototype.flat 和 flatMap

在ES2019中,JavaScript新增了两个数组方法:Array.prototype.flat()和Array.prototype.flatMap()。这两个方法都是用来操作数组的方法,其中 flat() 方法用来将嵌套的数组扁平化,而 flatMap() 方法则是先执行映射函数,再将结果扁平化。

Array.prototype.flat()

先来看一下 Array.prototype.flat() 方法。这个方法可以将嵌套的数组扁平化,也就是将多维数组转换为一维数组。这个方法非常实用,因为有时候我们会遇到需要将多维数组转换为一维数组的情况。

下面是一个使用 flat() 方法的示例代码:

在上面的代码中,我们将一个多维数组 [1, 2, [3, 4, [5, 6]]] 转换为了一维数组 [1, 2, 3, 4, 5, 6]。在 flat() 方法中,我们可以传入一个可选的参数,用来指定要扁平化的层数。如果不传入参数,默认为 1。

Array.prototype.flatMap()

接下来,我们来看一下 Array.prototype.flatMap() 方法。这个方法和 flat() 方法有些类似,但是它先执行映射函数,再将结果扁平化。这个方法的作用也非常实用,因为有时候我们会需要先对数组的每个元素执行一些操作,然后再将结果扁平化。

下面是一个使用 flatMap() 方法的示例代码:

在上面的代码中,我们先对数组中的每个元素都执行了一次乘以 2 的操作,得到了一个新的数组 [2, 4, 6]。然后我们将这个新数组扁平化,得到了最终的结果。

总结

ES2019 中的 Array.prototype.flat() 和 Array.prototype.flatMap() 方法都是非常实用的数组方法,可以帮助我们更方便地操作数组。在实际开发中,我们可以根据具体的需求选择使用哪个方法。需要注意的是,这两个方法可能并不是所有浏览器都支持,因此在使用时需要注意兼容性问题。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6555f9b7d2f5e1655d06d11c


纠错
反馈