在 ECMAScript 2019 中,新增加了一个方便实用的 Array 方法:Array.prototype.flat()。这个方法可以把一个嵌套的数组变成一个平面化的数组,方便数据的处理。在这篇文章中,我们将详细探讨这个方法的使用。
什么是 Array.prototype.flat()?
Array.prototype.flat() 是一个可以用于数组中的方法,可以把嵌套的数组拍平成一个一维数组。它接收一个可选的参数 depth
,用于设定拍平的层数。如果没有指定 depth
参数,则默认只会将数组拍平一层。
使用 Array.prototype.flat()
如果要使用 flat() 方法,首先需要一个可以被平铺的数组。让我们先创建一个示例数组:
----- ----------- - --- --- --- --- --- -----
如果我们想将这个嵌套的数组拍平,我们可以使用 flat() 方法:
----- --------- - ------------------- ----------------------- -- ------- --- -- -- -- -- --
这样就可以使用 flat() 方法将嵌套的数组平铺成为一个一维数组。
指定平铺的深度
除了将嵌套的数组完全平铺,我们还可以指定 flat() 方法的深度,例如:
----- ----------------- - --- --- --- --- --- --- ------ ----- --------- - -------------------------- ----------------------- -- ------- --- -- -- -- -- -- --
在这个示例中,我们将深度参数设为 2
,这意味着嵌套只有两层的数组将被平铺。第三层嵌套的数组将不会被处理。
如果我们不指定参数,那么 flat() 方法默认将深度设为 1。
非数组项
如果嵌套数组中存在非数组项,那么这些非数组项会被忽略,例如:
----- --------------------- - --- --- --- ------- --- ------ ----- --------- - ----------------------------- ----------------------- -- ------- --- -- -- ------- -- --
在这个例子中,字符串值 'four'
并没有被平铺,因为它是一个非数组项。
在何时使用 Array.prototype.flat()
Array.prototype.flat() 方法可以用于许多情况,例如当我们需要把嵌套的数据转换为一维数组时。在下面的示例中,我们可以使用 flat() 方法来操作一个嵌套的数据,以查找我们需要的数据:
----- ---------- - - - ----- ----- ------- -------------- -------- -- - ----- ----- ------- -------- ------ -- - ----- ----- ------- -------------- ---------- - -- ----- ------ - --------------------- -- ---------------------- -------------------- -- ------- -------------- -------- ------- ------ ------------- ----------
这个例子演示了如何使用 flat() 方法来把所有技能转换成一个数组。
另一个可能的用例是在安排模式/预定表中使用它。在这种情况下,您可以使用文件夹/组织功能(如递归)构建一个包含所有活动信息的平面数组。
结论
Array.prototype.flat() 方法可以让您轻松将嵌套的数组变成一个平面化的数组。它是一个方便且实用的方法,可以使数据的处理变得更加容易。尤其是在处理大型数据集时,这个方法的效果将更加明显。如果您在工作时需要处理大量的嵌套数组,那么这个方法肯定值得您一试。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/671daf189babaf620fb79674