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

JavaScript中如何为flatMap扁平化后的每个对象新增键值对

实现方案

注意:你贴出的原始示例数组中,第二个对象的LineItemRef: "Image"行末尾缺少逗号,实际运行前请补上,否则会抛出语法错误

你原有代码的问题是flatMap回调里只提取了ImageFileSet字段,没有关联同层级的LineItemFile属性,也没有给展平后的每个子项追加该字段,直接按下面的写法修改即可:

const allFiles = arr.flatMap(({ ImageFileSet, LineItemFile }) => {
  // 遍历当前项的ImageFileSet,给每个文件对象追加对应的LineItemFile
  return ImageFileSet.map(file => ({
    ...file,
    LineItemFile
  }))
})

逻辑说明

  • 遍历外层数组元素时,同时解构出当前项的ImageFileSet数组和对应的LineItemFile值
  • 对ImageFileSet内部的每个文件对象做映射,通过展开运算保留原有id等属性,再追加当前外层项对应的LineItemFile
  • flatMap会自动将内层映射生成的二维数组展平为一维数组,无需额外调用flat方法

运行后得到的输出和你预期完全一致:

[
  { id: 1, LineItemFile: "new name" },
  { id: 7, LineItemFile: null },
  { id: 8, LineItemFile: null },
  { id: 9, LineItemFile: null }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 13:33:23