ES9 新的 Array 方法: flat() 和 flatMap()

阅读时长 4 分钟读完

简介

ECMAScript 2018 (ES9) 是 JavaScript 语言的一个新的版本,它引入了一些新的功能与特性,其中包括两个新的 Array 方法:flat() 和 flatMap()。

flat()

flat() 方法用于将嵌套的数组(多维数组)降至一维,返回一个新的数组。这个新的数组是一个只包含原数组中所有元素(包括数组的嵌套元素)的一维数组。

flatMap()

flatMap() 方法是 flat() 方法的一个变体,它首先通过映射函数对每个元素执行映射操作,然后通过 flat() 方法将结果展开为一个新的数组。 flatMap() 方法返回的结果是一个只包含映射结果的一维数组。

用法

flat()

flat() 方法有两个可选参数:深度和默认值。

  • 深度(depth):是一个可选的整数数值,用于指定需要扁平化的嵌套深度,如果不指定或者指定为 1,则只存在一层嵌套时生效。如果指定深度为 0,则不进行任何扁平化操作,直接返回原始数组。如果深度为负数,则对数组全部进行扁平化。

  • 默认值(defaultValue):是一个可选的标量值,用于给新数组中没有被扁平化的元素赋值。如果不指定该参数,则默认值为 undefined。

以下是 flat() 方法的使用示例:

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

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

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

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

-- -------
----- ---- - --- -- --- --- -------
----- -------- - --------------------
-- ------- --- -- -- -- --
展开代码

flatMap()

flatMap() 方法也有两个可选参数:映射函数和 this 值。

  • 映射函数(mapFunction):是一个参数,用于执行映射操作。

  • this 值:与 Array.map() 方法的 this 值类似。

以下是 flatMap() 方法的使用示例:

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

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

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

-- -- --------- --------
----- ---- - --- -- -- ---
----- --------------- - -------------- -- --- -----
-- ------- --- --- -- --- -- --- -- ---
展开代码

指导意义

ES9 中引入的 flat() 和 flatMap() 方法使得数组扁平化和映射操作更加方便。这两个方法的使用使得代码更加简洁和易于阅读,同时也提高了程序的性能和效率。因此,在进行数组操作时,我们应该尽可能地利用 ES9 的这两个新特性,以优化我们的代码。

在使用 flat() 和 flatMap() 方法时,我们需要注意深度和默认值的设置,以便获得我们想要的结果。同时,在写出一些复杂的扁平化和映射操作代码之前,我们首先需要对这些方法进行深入了解,以确保代码能正常运行。

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

纠错
反馈

纠错反馈

程序员教程

精选优质教程,助你快速提升技术实力

程序员面试题库

海量优质面试题,助你轻松应对技术面试