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

如何对对象的多个直接子数组内所有元素仅执行一次map遍历?

实现代码

你可以通过Object.values提取所有子数组,拍平后映射提取指定字段即可,完整代码如下:

const frenchList = {
  u: [{
    id: 1,
    rating: 5,
    name: 'Uranophobie',
    description: 'Peur des cieux.',
  }, {
    id: 2,
    rating: 5,
    name: 'Urinophobie',
  }],
  v: [{
    id: 3,
    rating: 5,
    name: 'Vermiphobie',
    description: 'Peur des vers.',
  }],
};

// 得到所有元素打平后的结果
const flatResult = Object.values(frenchList)
  .flat()
  .map(item => ({
    name: item.name,
    // 若需要无description时默认返回空串,可替换为 item.description ?? ''
    description: item.description
  }))

执行后flatResult的输出结构:

[
  { name: 'Uranophobie', description: 'Peur des cieux.' },
  { name: 'Urinophobie', description: undefined },
  { name: 'Vermiphobie', description: 'Peur des vers.' }
]

如果你需要保留原对象的u/v分组结构,可以使用以下写法:

const groupedResult = Object.fromEntries(
  Object.entries(frenchList).map(([groupKey, itemList]) => [
    groupKey,
    itemList.map(item => ({ name: item.name, description: item.description }))
  ])
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:30:00