【问题标题】:javascript trying to get 3rd nested array.length and valuejavascript试图获取第三个嵌套array.length和值
【发布时间】:2010-03-21 17:49:34
【问题描述】:

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

如何获得第三个嵌套数组(在这种情况下,数组以“黄色”开头)

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

[
    ["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) 实际上提醒“Large”的长度为“5” 嵌套数组有限制吗? 我还能在这里嵌套真正的第三个数组吗?

【问题讨论】:

    标签: javascript arrays multidimensional-array


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 谢谢,但我不能调用 ["Large"] 因为我不知道运行时的值
    • @adardesign:好的。根据经验,当您表示要作为批处理处理的数据列表时使用数组,当您要通过属性快速查找时使用对象。根据上述规则,您可以将数组嵌套在对象内,反之亦然。
    【解决方案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]
    

    你能看到发生了什么吗?

    【讨论】:

    • 你能解释一下吗?我怎样才能得到第三个数组?
    • 在你的回答中我看到了最后一个例子。&gt;&gt;&gt; arr[0][1]...你能添加一个第三个嵌套例子吗?
    • @adardesign:好的,添加了第三个巢。在我的示例中,您也可以拥有第四个,只需添加更多索引
    • 正确。我的错误..我可以问你吗? @Chetan 是否正确地认为对象会更有意义?
    • @adardesign:如果不了解您的实际应用,很难说,但您的数据看起来可能是正确的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 2018-10-14
    • 2022-11-13
    • 2021-10-25
    • 1970-01-01
    • 2020-04-13
    相关资源
    最近更新 更多