[ES10 实战] 使用 ES10 中的 Array.flat() 解决 JS 中的嵌套数组操作

阅读时长 4 分钟读完

在 JavaScript 中,由于数组可以嵌套,我们有时需要对嵌套数组进行操作,比如展开嵌套数组,或者根据嵌套数组中的某些条件进行筛选。在 ES10 中,新增了一个很实用的方法 Array.flat(),可以帮助我们轻松地解决以上问题。

Array.flat() 方法介绍

Array.flat() 方法可以将嵌套数组展开为一维数组,同时可以指定展开的层数。其语法如下:

其中,参数 depth 表示展开的层数,默认值为 1,表示只展开一层。如果传入 Infinity,则会展开所有层数。

下面是一些例子:

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

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

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

需要注意的是,flat() 方法并不会改变原数组,而是返回一个新的数组。如果需要改变原数组,可以使用 flat() 方法的变体 flatMap()。

示例:使用 Array.flat() 处理嵌套数组

1、展开嵌套数组

假设我们有一个嵌套数组,需要将其展开为一维数组。这时可以使用 Array.flat() 方法,代码如下:

2、根据某些条件筛选嵌套数组

假设我们有一个二维数组,其中每个子数组都表示一条记录,需要根据某些条件,筛选出符合条件的记录。这时可以使用 Array.filter() 和 Array.flat() 方法,代码如下:

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

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

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

在以上代码中,我们先使用 flat() 方法展开二维数组,然后使用 filter() 方法筛选符合条件的记录。最后得到的 filteredRecords 数组包含了所有符合条件的记录。

总结

ES10 中新增的 Array.flat() 方法可以帮助我们简单、快速地处理嵌套数组。通过一些示例,我们可以看到这个方法的实用性。

当然,除了 flat() 方法外,ES10 中还有其他许多实用的方法,比 如 Object.fromEntries()、Array.flatMap()、String.trimStart() 和 String.trimEnd() 等等。学习和掌握这些新特性,可以让我们的编码效率得到大幅 提升。

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

纠错
反馈