我正在尝试动态构建菜单,并将数据输出到以下形式的 JSON 对象。
"Link 1": {
"href":"#",
"Sub Link 1": {
"href":"#"
},
"Sub Link 2": {
"href":"#",
"Sub Sub Link 1": {
"href":"#"
},
"Sub Sub Link 2": {
"href":"#"
}
}
}
首先,我想知道这对于链接层次结构是否是一个好的设计。
另一方面,当我遍历数组时,我只能获得名称“Link 1”,但不能获得链接层次结构下的任何属性。
我正在使用的循环如下:
for(var item in jsonMenu) {
console.log(item)
}
它输出:Link 1, Link 2, Link 3
但我希望能够访问该对象内的其他 JSON 对象。
我尝试嵌套另一个循环,但我得到的只是数字:0, 1, 2, 3
我怀疑这是字符串的长度。
我也尝试过使用:
item.hasOwnProperty(key)
但它不起作用:它返回Uncaught Reference Error: key does not exist
任何帮助将不胜感激
编辑:
到目前为止,这是我所拥有的,但在我看来,菜单的开销太大了,到目前为止,它的执行时间为 O(n^2),我仍然需要深入一层,所以执行时间会为 O(n^3):
for(var item in jsonMenu) {
if(jsonMenu.hasOwnProperty(item)) {
for(var attr in jsonMenu[item]) {
console.log(attr);
}
console.log(item + " => " + jsonMenu[item])
}
}