将包含更多对象的对象转换为数组

Convert an object containing more objects into an array

这就是我正在使用的:

let object = {
  'A':{
    "a": {
        "1": "2",
        "3": "4"},
    "b": {
        "3": "4",
        "5": "6"}
    },
  'B':{
    "c": {
        "7": "8",
        "9": "10"},
    "d": {
        "11": "12",
        "13": "14"}
    }
}

我一直在尝试计算我的输出结果,使其看起来像这样

result = [ 
    {"a": {"1": "2", "3": "4"}},
    {"b": {"3": "4", "5": "6"}},
    {"c": {"7": "8", "9": "10"}}
    {"d": {"11": "12", "13": "14"}}
]

我已经尝试了以下与我正在寻找的更接近但不相同的方法: Object.entries(object).map(([key, value]) => { return 值 })

可以使用 2 forEach

let object = {
  'A':{
    "a": {
        "1": "2",
        "3": "4"},
    "b": {
        "3": "4",
        "5": "6"}
    },
  'B':{
    "c": {
        "7": "8",
        "9": "10"},
    "d": {
        "11": "12",
        "13": "14"}
    }
}



let res = []
Object.values(object).forEach((value) => {
    Object.entries(value).forEach((el) => {
    res.push({[el[0]]: el[1]})
  })
})


console.log(res)

试试这个:

Object.values(object)
    .flatMap(a => Object.entries(a))
    .map(([k, v]) => ({ [k]: v }))

编辑为使用@Thomas 的最后一个 map 想法,而不是使用 Object.fromEntries

试试这个

let object = {
  'A':{
    "a": {"1": "2", "3": "4"},
    "b": {"3": "4", "5": "6"}
  },
  'B':{
    "c": {"7": "8", "9": "10"},
    "d": {"11": "12", "13": "14"}
  }
};

let arr = Object.entries(Object.assign({}, ...Object.values(object))).map(([k, v]) => ({[k]: v}));
console.log(arr)