Javascript 将带有子对象的 Object 转换为 Array

Javascript convert Object with child-objects into Array

本文关键字:Object 转换 Array 对象 Javascript      更新时间:2023-09-26

我有一个包含子对象作为子对象的对象。我需要将其转换为数组:

var myObj = {
    a: 5,
    b: 6,
    c: {
        a: {
            a: {
                a: 7
            }
        }
    },
    d: {
        a: {
            a: 8,
            b: 9,
            c: {
                a: 10
            }
        },
        b: 11
    }
}

喜欢这个:

myArray = [
    a: 5,
    b: 6,
    c: [
      a: [
        a: [
          a: 7
        ]
      ]
    ],
    d: [
      a: [
        a: 8,
        b: 9,
        c: [
          a: 10
        ]
      ],
      b: 11
    ]
  ];

实现这一目标的最佳方法是什么?

正如您的评论中所述,您似乎遇到了 XY 问题。你想要X,但向我们索要Y,而是认为它会帮助你,但实际上Y比X更难解决。

有两种

方法可以在 JavaScript 中访问对象的属性:

  • obj.prop
  • obj['prop']
两种访问方式的

区别在于第二种方式更通用,可以使用一些受限制的关键字作为属性名称,可以使用变量来访问值等。

要访问您的嵌套属性,您可以这样做(任何选项都可以):

  • myObj.c.a.a.a
  • myObj['c']['a']['a']['a']

您甚至可以混合使用它们:myObj.c['a'].a['a'],尽管它可能更令人困惑,因此您应该避免使用它。

JS中的数组也是对象,它们具有更多处理带有数字名称的属性的功能。您似乎不需要任何这些功能,因此您可能不需要数组。