javascript试图获得第三个嵌套的array.length和value

时间:2010-03-21 17:49:34

标签: javascript arrays multidimensional-array

我有一个生成的嵌套数组,我存储了一些数据。

如何获得第3个嵌套数组(在本例中为以“yellow”开头的数组)

数组看起来像这样(这是一个动态生成的数组):

[
    ["Large", 
       ["yellow", "green", "Blue"],
       ["$55.00", "$55.00", "$55.00"]
     ]
    ["Medium",
       ["yellow", "green", "Blue", "Red"],
       ["$55.00", "$55.00", "$55.00", "$55.00"]
    ]
    ["small",
       ["yellow", "green", "Blue", "Red"],
       ["$55.00", "$55.00", "$55.00", "$55.00"]
    ]
]

我试图获得[“黄色”,“绿色”,“蓝色”]数组的长度和循环来获取值

for(i=0; colorNSize.dataArray[0][0][1].length<i; i++){
    alert(colorNSize.dataArray[colorNSize.Sizeindex][0][0][i])// alert's A (which is the char[1] of the second array.
}

alert(colorNSize.dataArray[0][0][1].length)实际警告“大”的长度为“5” 嵌套数组有限制吗? 我还能在这里嵌套真正的第三个数组吗?

2 个答案:

答案 0 :(得分:2)

您的格式可能有误 - “大”与颜色数组和价格位于同一个数组中吗?缩进告诉它,括号表示它全部嵌套。在一系列价格之后你忘了一个支架吗?

无论如何,[0][0][1]已经引用了“大”的字符。 [0][0]为“大”,[0][1]是另一个数组。

考虑这个简化的例子:

>>> arr = [['large', [[1, 2], [3, 4]]]]
[["large", [[1, 2], [3, 4]]]]
>>> arr[0]
["large", [[1, 2], [3, 4]]]
>>> arr[0][0]
"large"
>>> arr[0][1]
[[1, 2], [3, 4]]
>>> arr[0][1][0]
[1, 2]

你能看到发生了什么吗?

答案 1 :(得分:2)

为什么一切都必须是数组?这种结构对我来说更有意义。

obj = {
    "Large": {
       "yellow": "$55.00",
       "green": "$55.00",
       "Blue": "$55.00"
    },
    "Medium": {
    ...
    ...
]

要获得大的黄色价格,我所要做的就是

obj["Large"]["yellow"] //or obj.Large.yellow