在 ECMAScript 2019 中,新增了许多有趣的功能和特性。其中一个引人注目的变化是新增了 Array 的 flat()
方法。这个方法可以将一个多维数组的嵌套结构转换为一个一维数组,非常方便。
flat()
方法的基本用法
如果你有一个多维数组,如下所示:
----- ----------- - --- -- --- --- -----
你想把它打平成一个一维数组。使用原生的方法可能会显得比较繁琐:
----- --------- - --------------------------------- -- ------------------- - ----------- - ------- ---- --- -- -- -- --
使用 flat()
方法就会简单很多:
----- --------- - ------------------- ---- --- -- -- -- --
可以看到,flat()
方法可以将嵌套的子数组将其转换为一个一维数组。
指定深度参数
在某些情况下,你可能希望只打平第一层或前几层的数据。这时可以使用 depth
参数来指定需要扁平化的层数。
例如,假设你现在有一个三维数组:
----- --------------------- - --- -- --- --- -- --- ------
现在我们希望将其前两层的数据压缩成一个二维数组。使用 flat()
方法时,只需将深度参数设置为 2 即可:
----- --------- - ------------------------------ ---- --- -- -- -- -- --- ---
你会发现,depth
参数的作用是指定打平的层数。
处理空项
在扁平化数组时,可能会遇到空数组或者 null / undefined 值。此时 flat()
方法的默认行为是将这些值从结果中删除,但如果显式指定 depth
参数,空项也可能被保留。
例如,假设你有一个包含空数组的多维数组:
----- -------------------- - --- --- ---- -- ------
当使用 flat()
方法进行打平处理时,空数组将被自动删除:
----- --------- - ---------------------------- ---- --- -- --
如果不想去掉空数组,可以通过指定 depth
参数来实现:
----- --------- - ------------------------------------ ---- --- -- -- ---
将对象转换为数组
最后,与 ES2019 中其他新特性一样,flat()
方法也具有考虑周全的功能,能够处理包含对象的数组。
----- -------- - --- - ----- ------- -- --- - ----- ----- ---- ----- --------- - ---------------- ---- --- - ----- ------- -- -- - ----- ----- --
如你所见,该方法不仅处理多维数组,还可以将嵌套在对象中的数据转换成一个一维数组。
总结
flat()
方法是一个用于扁平化嵌套数组的实用工具。它可以大幅简化嵌套数组的操作,并且具有许多有用的特性。使用 flat()
函数时,重要的是注意其 depth
参数的默认值和行为以及如何处理空项。
希望这篇文章对你有所帮助,加油学习吧!
示
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6504477d95b1f8cacd0f9789