ES10 数组 flatMap() 的用法

阅读时长 3 分钟读完

在ES10中,新增了一个函数 flatMap() 用来操作数组。该函数可以对数组中的每一个元素执行一个操作,并将结果组成一个新数组。那么 flatMap() 到底该如何使用呢?

语法

简介

flatMap() 方法首先映射每个元素,然后通过一个深度为1的扁平数组方法(flatten)将结果嵌套的数组减少一维。

map() 不同,flatMap() 对于将映射后的结果扁平一层,尤其是当操作是创建一个新数组时非常有用。

实例

-- -------------------- ---- -------
----- --- - --- -- -- -- ---

----- ------ - --------- -- -- - ----

-------------------- -- ----- ---- ---- ---- -----

----- --------- - ------------- -- -- - ----

----------------------- -- --- -- -- -- ---

在这个例子中,我们首先对数组进行了 map() 操作,将每个元素都翻倍。这样,我们得到了一个嵌套的数组,即一个二维数组。接着,我们通过 flatMap() 方法,将这个二维数组扁平为一维数组。

flatMap() 方法非常实用,特别是当我们需要多维数组中嵌套的情况下。它可以简化操作并且更直接地得到我们期望的结果。

循环中的 flatMap()

-- -------------------- ---- -------
----- --- - --- -- -- -- ---

----- ------ - ------------- -- -
  -- -- - - --- -- -
    ------ -- - ---
  - ---- -
    ------ ---
  -
---

-------------------- -- --- --

在这个例子中,我们首先检查数组中的每个元素是否为偶数。如果是,我们将其除以2,然后将其存储到一个新数组中。如果不是,我们返回一个空数组。

这是非常重要的,因为 flatMap() 方法可以跳过值为空的项。因此,如果我们不返回空数组,我们最终的结果会包含 undefined值。

通过返回空数组,我们可以确保我们的结果是纯净的。

总结

flatMap() 方法非常方便,尤其是当我们需要多维数组中嵌套的情况下。它可以简化操作并且更直接地得到我们期望的结果。在使用这个函数时,我们需要特别注意函数的返回值,并且需要始终尝试返回一个数组,以避免在结果中出现 undefined 值。

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

纠错
反馈