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

如何合并数组中每个对象嵌套的details子数组,得到所有value对象集合

正确实现方案

你现有代码存在两个问题:

  1. 仅使用map转换只会得到包含两个details子数组的二维数组,无法直接合并为一维数组
  2. 错误使用对象展开语法{...data.details},会将数组转为键为索引的对象,不符合预期结构

方案1(最简写法,ES2019+支持)

使用flatMap方法,该方法会先执行map转换,再自动扁平化一层数组,刚好匹配需求:

const final = datas.flatMap(item => item.details)

方案2(兼容低版本运行环境)

使用reduce累加合并所有details数组:

const final = datas.reduce((result, current) => result.concat(current.details), [])

方案3(map+flat组合写法)

先通过map提取所有details数组,再调用flat扁平化:

const final = datas.map(item => item.details).flat()

以上三种写法都可以得到你要的预期输出。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 02:45:03