ES8 中的新方法:Array.flat 和 Array.flatMap

阅读时长 4 分钟读完

ES8 中的新方法:Array.flat 和 Array.flatMap

在 ES8 中,新增了两个方法 Array.flat 和 Array.flatMap,它们都是用来处理数组的方法,这两个新方法可以让我们更加方便地处理数组,同时也使我们的代码更加简洁优雅。

  1. Array.flat

首先我们来看一下 Array.flat。它是用来将多维数组转化为一维数组的方法。如果你以前需要将一个多维数组转化为一维数组,你可能需要使用递归或者循环来完成这个任务,但是现在,你可以使用 Array.flat 来轻松地解决这个问题。

Array.flat 方法的语法结构如下:

其中,array 表示需要处理的数组,depth 表示指定需要展开的维度,它的默认值是 1。

例如:

由于我们没有指定展开的深度,所以 Array.flat 默认只展开了一层,导致最后一个子数组并没有展开。如果我们需要将所有的子数组都展开,我们可以指定 depth 的值为 Infinity。

例如:

在处理多维数组时,Array.flat 方法非常有用,可以让我们更加方便地进行数据处理和操作。

  1. Array.flatMap

接下来,我们来看一下 Array.flatMap 方法。它是用来将数组映射成另外一个数组,并将其中的所有元素展开到一维数组中的方法。如果你以前需要使用 Array.map 来映射数组,并且需要使用 Array.flat 来展开数组,那么现在你可以使用 Array.flatMap 来同时完成这两个任务。

Array.flatMap 方法的语法结构如下:

其中,callback 表示一个函数,它接受三个参数:当前元素、元素索引和数组本身,并返回一个新数组,这个新数组会被展开到一维数组中。thisArg 表示回调函数中 this 的指向。

例如:

在上面的例子中,我们使用 Array.flatMap 将 arr 数组映射成了另外一个数组,并将其中的元素展开到一维数组中,我们可以看到得到的结果就是 [2, 4, 6]。

Array.flatMap 还有一个很有用的应用,它可以帮助我们过滤掉数组中的空值和 undefined 值,使得我们的代码更加简洁和优雅。

例如:

在上面的例子中,我们使用 Array.flatMap 将 arr 数组中的空值和 undefined 值过滤掉了,使得最后的结果变得更加清晰和简洁。

总结

ES8 中新增的两个方法 Array.flat 和 Array.flatMap,可以让我们更加方便地处理数组,使我们的代码更加简洁优雅。其中,Array.flat 是用来将多维数组转化为一维数组的方法,Array.flatMap 是用来将数组映射成另外一个数组,并将其中的所有元素展开到一维数组中的方法。在实际开发中,我们可以根据具体的需求选择使用不同的方法,使得我们的代码变得更加简洁、清晰和易于维护。

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

纠错
反馈