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

JavaScript遍历嵌套对象生成指定结构新对象的实现问题

解决嵌套对象遍历并生成指定结构对象的问题

你的代码主要有三个问题:

  • Object.entries返回的是[键名, 对应值]形式的数组,直接用item.id无法获取到嵌套对象的属性,得取数组的第二个元素(也就是嵌套的对象)
  • 访问section属性时语法错误,section.[item.id]多了个多余的点,正确写法是section[目标id]
  • map返回的是数组结构,但你需要的是对象,得用Object.fromEntries把数组转回对象

正确代码实现

const res =  {0 : {id: "id1", name: "name1" , rollno: "1"}, 1 : {id: "id2", name: "name2", rollno: "2"}}
const section = {"id1" : "section A", "id3" : "section B"}

const result = Object.fromEntries(
  Object.entries(res).map(([key, obj]) => {
    return [
      key,
      {
        id: obj.id,
        name: obj.name,
        section: section[obj.id]
      }
    ]
  })
)

console.log(result)
// 输出结果:
// {
//   0: { id: 'id1', name: 'name1', section: 'section A' },
//   1: { id: 'id2', name: 'name2', section: undefined }
// }

代码说明

  1. Object.entries(res)将原对象转换为[[键名, 嵌套对象], ...]格式的数组
  2. 用map遍历数组,通过解构直接拿到原对象的键名(0、1)和对应的嵌套对象
  3. 为每个嵌套对象生成包含id、name、section的新对象,section通过嵌套对象的id去section中查找,不存在的id会自动返回undefined
  4. Object.fromEntries将处理后的数组重新转换为对象,得到你期望的结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 04:50:25