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

如何通过单次.map调用为数组每个元素生成多个同结构对象

实现方案

可行性说明

可以实现。你原有代码的问题有两点:

  • 对同一个对象的同一属性重复赋值,后写入的receiverRole会覆盖先写入的initiatorRole
  • 原生map是一对一映射规则,单次遍历默认只能返回一个值,我们可以配合数组扁平化逻辑实现一对多的输出需求

代码实现

方案1:map + flat 组合

const roles = data.map(d => [
  { role: d.initiatorRole },
  { role: d.receiverRole }
]).flat()

方案2:单次flatMap调用(更简洁)

flatMap本质是执行完map操作后自动做一层数组扁平化,单次调用即可得到目标结果:

const roles = data.flatMap(d => [
  { role: d.initiatorRole },
  { role: d.receiverRole }
])

如果需要兼容ES2019之前的运行环境,优先选择map+flat的方案即可。两种方案输出的结果都和你期望的格式完全一致,可直接用于后续的去重、追加数据操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 03:30:05