根据每个索引迭代嵌套对象

问题描述 投票:0回答:1

在“NodeClassification”下方,每个对象中都有嵌套对象,其中有项目对象,我需要将其打破以形成对象数组。对象数组的结果如下所示,来自具有新键和现有值的结构。 下面附上需要在对象数组上的此结构中形成的栏。

JSON Object Structure:
    "NodeClassification": {
             "Mobile": {
                "NORMAL": {
                   "DownCount": 2
                },
                "VIP": {
                   "DownCount": 2
                }
             },
             "MobileRAN": {
                "NORMAL": {
                   "DownCount": 4
                },
                 "VIP": {
                       "DownCount": 4
                    },
                "CRITICAL": {
                       "DownCount": 4
                    }
             }
          }
        
    Result I need based on Array Of Object Structure:
    [{
        group: 'NORMAL',
        key: 'Mobile',
        value: 2
      },
      {
        group: 'VIP',
        key: 'Mobile',
        value: 2
      },
      {
        group: 'NORMAL',
        key: 'MobileRAN',
        value: 4
      },
      {
        group: 'VIP',
        key: 'MobileRAN',
        value: 4
      },
      {
        group: 'CRITICAL',
        key: 'MobileRAN',
        value: 4
      }
    ] 

NodeClassifcation JSON Bar chart

javascript arrays object
1个回答
0
投票

迭代这些值,直到使用

map
方法到达第二个嵌套对象,然后使用
flat
方法展平嵌套数组。

const obj = {
  "NodeClassification": {
    "Mobile": {
      "NORMAL": {
        "DownCount": 2
      },
      "VIP": {
        "DownCount": 2
      }
    },
    "MobileRAN": {
      "NORMAL": {
        "DownCount": 4
      },
      "VIP": {
        "DownCount": 4
      },
      "CRITICAL": {
        "DownCount": 4
      }
    }
  }
}

const items = Object.values(obj).map((n) => {
  return Object.values(n)
}).flat()

console.log(items)

© www.soinside.com 2019 - 2024. All rights reserved.