ES11 的 Array.flat、flatMap 方法全面介绍

阅读时长 4 分钟读完

在 JavaScript 中,数组是一种非常常见的数据类型,而 Array.prototype 上提供了一系列的方法用于对数组进行操作,其中 ES6 引入的一些新方法得到了广泛的应用。但是对于嵌套数组的处理,遇到了一些不便,ES11 引入的 Array.flat 和 Array.flatMap 方法,则为我们提供了更为便捷的操作方式。

什么是 Array.flat

我们经常会遇到数组内部有嵌套数组的情况,例如一个存储着书籍分类以及书籍信息的数组:

现在我们想把这个数组打扁以便于展示或者处理,我们可以这样实现:

这个过程比较繁琐,而且需要一个空数组和一个 reduce 方法来处理。在 ES11 中我们可以使用 Array.flat 方法来完成这个任务:

Array.prototype.flat 接受一个可选参数 depth,指定打扁的深度:

什么是 Array.flatMap

Array.prototype.flatMap 是在 Array.prototype.map 的基础上增加了一个打平的功能。我们假设有一个数组,里面的元素是字符串,每个字符串都表示一个人名,我们需要将每个人名的首字母大写:

但是如果我们想让结果打平,我们还需要加入一个 flat 。

ES11 的 Array.flatMap 方法结合了这两个操作,如下代码:

如果 flatMap 返回的是一个数组,它会将这个数组打平。如果返回的是 null 或 undefined,它会将这个元素过滤掉。

-- -------------------- ---- -------
----- --- - --- -- -- --

----- ------ - --------------- -- -
  -- ---- - - --- -- -
    ------ ----- --- - --
  - ---- -
    ------ ----
  -
--

------------------- -- --- -- -- --

总结

ES11 引入的 Array.flat 和 Array.flatMap 方法能够更便捷地处理嵌套数组,提高开发效率。这篇文章详细介绍了这两个方法,并提供了示例代码进行演示。这些新特性的使用不仅可以提高代码的可读性和可维护性,也可提高代码的效率和性能,值得学习和掌握。

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

纠错
反馈