简介
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