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

发布于 2022-09-12 22:10:29 字数 551 浏览 5 评论 0

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展平,为什么上面那样写数组的第一个对象出来了,可是第二个出错了。谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

深爱成瘾 2022-09-19 22:10:29

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文