Javascript 为嵌套json运行for-each循环
基本上我有一个JSON对象。您可以在我提供的图片中看到它的属性,现在我一直在尝试为每个特定的lvl编写一个Javascript 为嵌套json运行for-each循环,javascript,jquery,json,object,foreach,Javascript,Jquery,Json,Object,Foreach,基本上我有一个JSON对象。您可以在我提供的图片中看到它的属性,现在我一直在尝试为每个特定的lvl编写一个 $.each(toSort.items.items.items.items.items, function (index, value) { console.log(index); }); 所以我想要的是一个嵌套在第5层的循环,运行代码。所以我想知道的是,为什么上面的代码无效?因为items总是一个数组,您必须引用这个数组中的某个索引。如果你想得到一个项目,你必须使用索引 toS
$.each(toSort.items.items.items.items.items, function (index, value) {
console.log(index);
});
所以我想要的是一个嵌套在第5层的循环,运行代码。所以我想知道的是,为什么上面的代码无效?因为items总是一个数组,您必须引用这个数组中的某个索引。如果你想得到一个项目,你必须使用索引
toSort[0].items[0].items[0] //third level
如果希望所有值都来自该数组,最好使用多个循环。此外,for()
比jQuery的each()
快得多
for(变量i=0;i
第5层之前的每一层中的项也是数组,因此要访问第一层中的项数组,您需要指定一个索引,通过执行toSort.Items.Items,第二个项被视为一个不存在的属性来访问,要访问第一个项数组中的第二个项数组,您必须以toSort.Items[0]的身份访问它.项目等 后续访问的一个示例可能是
toSort.items[0].items[0].items[0].items[0].items[0]
toSort.items[0].items[0].items[0].items[0].items[1]
toSort.items[0].items[0].items[0].items[0].items[2]
...
toSort.items[0].items[0].items[0].items[1].items[0]
toSort.items[0].items[0].items[0].items[1].items[1]
toSort.items[0].items[0].items[0].items[1].items[2]
...
...
...
toSort.items[1].items[1].items[1].items[1].items[0]
toSort.items[1].items[1].items[1].items[1].items[1]
toSort.items[1].items[1].items[1].items[1].items[2]
看起来它可以用于一些递归,不是吗?查看对象每一层旁边的数据类型。您必须根据每一层的类型对其进行寻址。不能逐点寻址数组,必须使用索引。
toSort.items[0].items[0].items[0].items[0].items[0]
toSort.items[0].items[0].items[0].items[0].items[1]
toSort.items[0].items[0].items[0].items[0].items[2]
...
toSort.items[0].items[0].items[0].items[1].items[0]
toSort.items[0].items[0].items[0].items[1].items[1]
toSort.items[0].items[0].items[0].items[1].items[2]
...
...
...
toSort.items[1].items[1].items[1].items[1].items[0]
toSort.items[1].items[1].items[1].items[1].items[1]
toSort.items[1].items[1].items[1].items[1].items[2]