You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Javascript Node.js环境下嵌套数组展平与拆分实现问题

多层嵌套数组拆分方案

需求说明

现有三维嵌套数组,编码相同的条目被归入同一个二级子数组中,需要将同组条目拆分输出,原数组示例如下:

[
  [ [ '0011', 6, 96, '2021-08-16' ], [ '0011', 2, 4, '2021-08-17' ] ],
  [ [ '0032', 20, 26, '2021-08-16' ] ],
  [ [ '0098', 6, 246, '2021-08-16' ], [ '0098', 0, 0, '2021-08-17' ] ],
  [ [ '0093', 2, 30, '2021-08-16' ] ],
  [ [ '0051', 32, 229, '2021-08-16' ] ],
  [ [ '0053', 27, 63, '2021-08-16' ], [ '0053', 2, 38, '2021-08-17' ] ],
  [ [ '0022', 4, 2, '2021-08-16' ], [ '0022', 6, 12, '2021-08-17' ] ],
  [ [ '0067', 2, 144, '2021-08-16' ] ],
  [ [ '0166', 4, 102, '2021-08-16' ] ],
  [ [ '0015', 4, 96, '2021-08-16' ] ],
]

需要实现两种输出格式:

  1. 拆分后每个条目单独包裹为三维数组单元,同组条目不再放在同一个二级子数组中
  2. 整体展平为二维数组,每个条目直接作为一级子数组单元

实现代码(以JavaScript为例)

第一种输出格式实现

使用flatMap遍历分组,将每个条目单独包裹一层数组后展平一级:

const result1 = arr.flatMap(group => group.map(item => [item]))

第二种输出格式实现

直接展平一层数组,移除分组层级即可:

const result2 = arr.flat(1)

逻辑说明

  • flatMap方法等价于先执行map映射再执行flat(1)展平,刚好适配拆分分组的需求,不会破坏条目的原始结构
  • flat(1)指定只展平1层嵌套,仅移除二级分组层级,不会把最内层的条目数组拆解开,避免了全量flatten导致的条目结构被破坏的问题。

内容的提问来源于stack exchange,提问作者john

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 09:42:02