在 ES7 中,Array 类型新增了两个方法:flat
和 flatMap
。这两个方法可以帮助我们更快捷、简单和有效地处理嵌套数组和扁平化数组。
flat
flat
方法可以将多维数组“扁平化”,即把所有的嵌套数组变成一个一维数组。它的语法如下:
--- -------- - -----------------
其中,arr
可以是任何数组,depth
(可选)指定要扁平化的嵌套层数。默认值为 1。
示例代码如下:
----- --- - --- -- --- ---- ----- ------- - ----------- -- --- -- -- --
当我们需要打平一个多维数组时,可以传递一个 depth 参数指定要扁平化的嵌套层数,示例代码如下:
----- --- - --- -- --- --- ----- ----- ------- - ------------ -- --- -- -- -- --
flatMap
flatMap
方法和 map
方法类似,不同的是它会先将数组项映射到一个新的数组中,然后将映射后的结果打平成一个新的数组。它的语法如下:
--- -------- - ----------------------------------- ------- ---------- ---------
其中,arr
是原数组,callback
是对原数组所有元素执行的函数,它的返回值是一个新的数组,thisArg
是执行 callback 函数时的 this
值,可以省略。
示例代码如下:
----- --- - --- -- --- ----- ---------- - ------------- -- -- - ---- -- --- -- --
如果 callback
函数返回的是一个数组,那么 flatMap
方法会将这个数组打平之后,将其作为返回值添加到新的数组中,示例代码如下:
----- --- - --- -- --- ----- ---------- - ------------- -- --- - ----- -- ----- ---- ----
总结
在处理多维数组时,flat
和 flatMap
方法可以让我们更方便地处理数组,提高我们的开发效率。flat
方法可以将多维数组“扁平化”,而 flatMap
方法可以将映射后的结果打平并添加到一个新的数组中。
需要注意的是,这两个方法在使用时需要慎重考虑嵌套层数和返回值的类型,以免出现不符合预期的结果。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6479e48b968c7c53b05cea40