javascript - 访问无限嵌套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
键
解决方案
如果您需要在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)
}
}
}
推荐阅读
- android - 如何在不使用读取通话记录权限的情况下在 android PIE 上获取来电者电话号码?
- github - GitHub 公关帮助。如何添加用户?
- javascript - 如何获取扩展所有 Shadow DOM 元素的完整 html
- bash - Bash:从独立于 2 的 1 个循环中获取结果
- dexie - dexie.js Table.bulkAdd() 和 Table.bulkPut() 的区别
- forms - Drupal 8 - 更改表单中保存预览按钮的位置
- assembly - amd64 上“条件调用”的表现
- python - 树莓派相机模块
- xpath - 如何通过文本选择包含纯文本的节点和其他一些节点?
- intellij-idea - IntelliJ IDEA 调试无法预览每一行的值