代码之家  ›  专栏  ›  技术社区  ›  adardesign

javascript正在尝试获取第三个嵌套的array.length和value

  •  1
  • adardesign  · 技术社区  · 16 年前

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

    数组如下所示(这是一个动态生成的数组):

    [
        ["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"]
        ]
    ]
    

    我试图获得[“yellow”,“green”,“Blue”]数组的长度和循环来获得值

    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 回复  |  直到 16 年前
        1
  •  2
  •   Eli Bendersky    16 年前

    您的格式可能是错误的-是否“大”驻留在同一个数组的颜色数组,然后价格?缩进表示是,括号表示都是嵌套的。你忘了价格表后面的括号了吗?

    无论如何 [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]
    

    你能看到发生了什么吗?

        2
  •  3
  •   Chetan S    16 年前

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

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

    为了得到大的,黄色的价格,我所要做的就是

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