JS对象展平问题。想得到[{"a":12,"d":23},{"a":912,"d":923}]

let a=[{"a":12,b:{"d":23}},{"a":912,b:{"d":923}}]
let res = [{}]
    for (var index = 0; index < a.length; index += 1) {
      Object.keys(a[index]).forEach(key => {
        if (typeof a[index][key] === "object") {
          Object.keys(a[index][key]).forEach(
            innerKey => {res[index][innerKey] = a[index][key][innerKey]}
          )
        }else{
console.log(a[index][key])
          res[index][key] = a[index][key]
console.log(res)
        }
      })
    }

请问我想把a展平,为什么上面那样写数组的第一个对象出来了,可是第二个出错了。谢谢

阅读 1.3k
1 个回答

你初始化只有一个空对象,到下一个对象也就是index为1的时候res里索引为1即res[1]=undefined,那你的else就报错了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题