Javascript:使用“遍历2级深度数组”;至于;不';不能再生成一个数组
对不起,如果我的标题很难理解。让我解释一下 要使用我的结构示例,请执行以下操作:Javascript:使用“遍历2级深度数组”;至于;不';不能再生成一个数组,javascript,object,traversal,Javascript,Object,Traversal,对不起,如果我的标题很难理解。让我解释一下 要使用我的结构示例,请执行以下操作: Array ( [2] => Array ( [0] => stdClass Object ( [category_id] => 2 [category_name] => women [project_id] => 1
Array
(
[2] => Array
(
[0] => stdClass Object
(
[category_id] => 2
[category_name] => women
[project_id] => 1
[project_name] => Balloons
)
)
[1] => Array
(
[0] => stdClass Object
(
[category_id] => 1
[category_name] => men
[project_id] => 2
[project_name] => Cars
)
[1] => stdClass Object
(
[category_id] => 1
[category_name] => men
[project_id] => 3
[project_name] => Houses
)
)
一旦我有了它,我就将它发送给javascript进行评估(这是成功的)。事实上,Console.log确实显示了我的eval'd json现在实际上是一个对象
现在,如果我使用console.log(myArray[2]),它将显示为包含另一个数组的数组。这也是正确的
但是!。。如果我尝试这样做:
for (item in myArray[2]) {
...
}
或者这个:
newVar = myArray[2]
for (item in newVar) {
...
}
“项”未按其应有的方式包含数组。它包含一个等于子数组键的字符串。在本例中,哪个是“0”
我在这里错过了什么,伙计们(
感谢您的帮助!您已经说过问题所在:“项”不包含数组…它包含一个等于子数组键的字符串。因此,您只需要使用该键:
var subarray;
for (var i in myArray) {
subarray = myArray[i];
for (var j in subarray) {
... // do stuff with subarray[j]
}
}
如果您使用的JavaScript库可能会覆盖数组/对象原型,那么您还需要检查hasOwnProperty:Good point。此外,如果您仅为FF开发,那么有一种方法可以像您以前尝试的那样进行迭代-使用
forEach
:或for each…in
:感谢您的帮助!现在就可以了。I st我将使用一个for循环,但我正在访问我的值列表,因此:myArray[i]['project_name']作为旁白,您的示例结构确实很难阅读。您只需要说“数组数组”或“嵌套数组”,这一点就很清楚了。