首页 > 解决方案 > 访问无限嵌套json中单个键的存在

问题描述

我有一个嵌套的 JSON 用于动态进入菜单项,children如果它存在,则可以动态打开或关闭一个键:

 [
      {
        "Role": "004-MCR",
        "Menu":[
          {
            "label": "Alerts",
            "icon": "pi pi-fw pi-plus",
            "children": [
              {
                "label": "Alerts-Child1(1) L1",
                "icon": "pi pi-fw pi-plus",
                "children": [
                  {
                    "label": "Alerts-child1(1) L2",
                    "icon": "pi pi-fw pi-plus",
                    "children": {
                      "label": "Alerts-child1 L3",
                      "icon": "pi pi-fw pi-plus"
                    }
                  },
                  {
                    "label": "Alerts-child1(2) L2",
                    "icon": "pi pi-fw pi-plus"
                  }
                ]
              }
            ]
          },
          {
            "label": "location",
            "icon": "pi pi-fw pi-plus",
            "children": [
              {
                "label": "location-Child1(1) L1",
                "icon": "pi pi-fw pi-plus",
                "children": [
                  {
                    "label": "location-child1(1) L2",
                    "icon": "pi pi-fw pi-plus",
                    "children": {
                      "label": "location-child1 L3",
                      "icon": "pi pi-fw pi-plus"
                    }
                  },
                  {
                    "label": "location-child1(2) L2",
                    "icon": "pi pi-fw pi-plus"
                  }
                ]
              }
            ]
          }
        ]
       }
    ] 

如何制作动态函数来访问和切换任何嵌套children

标签: javascriptangular

解决方案


如果您需要在child对象内切换标志。

function toggleFlag(data, flag) {
  for (let key in data) {
    if (key === flag) {
      data[key] = !data[key];
    } else if (typeof data[key] === 'object') {
      toggleFlag(data[key], flag)
    }
  }
}

推荐阅读