2012-07-22 79 views
0

我在JavaScript中有一個多維對象具有以下結構基金:多維數組的JavaScript

arg: Array[2] 
    2.0: "can_be_whatever" 
    3.1: Array[6] 
    1.0: Array[1] 
      1.0: Object 
        1. conc: false 
        2. followers: Array[1] 
        3. altVec: Array[0] 
        4. parents: Array[0] 
        5. regMsgs: Array[0] 
        6. shared: Array[0] 
        7. sharedWith: Array[0] 
        8. consistsof: Array[3] 
            1. 0: Array[1] 
                1. 0: "a" 
                2. length: 1 
                3. __proto__: Array[0] 
            2. 1: Array[1] 
                1. 0: "a" 
                2. length: 1 
                3. __proto__: Array[0] 
            3. 2: Array[1] 
                1. 0: "a" 
                2. length: 1 
                3. __proto__: Array[0] 
            4. length: 3 
            5. __proto__: Array[0] 
       9. unregMsgs: Array[0] 
       10. part: 0 
       11. __proto__: Object 

我在JavaScript很新,我需要獲取價值「一」從嵌套數組。有人可以提出一些建議嗎?

+4

請將對象顯示爲JSON而不是 – Hubro 2012-07-22 18:20:27

+0

所以你使用浮點數作爲索引? – Kos 2012-07-22 18:27:16

+0

這不是一個JavaScript數組。 – 2012-07-22 18:28:28

回答

0

坦率地說,這個結構對我來說沒有任何意義。我試圖將它「轉換」爲「真正的」JavaScript結構。我希望這得到接近你的意思:

var arg = [ 
    "can_be_whatever", 
    [[{ 
     conc: false, 
     followers: [null], 
     altVec: [], 
     parents: [], 
     regMsgs: [], 
     shared: [], 
     sharedWith: [], 
     consistsof: [["a"], ["a"], ["a"]], 
     unregMsgs: [] 
    }], null, null, null, null, null] 
]; 

然後你可以選擇像這樣的「一」值:

var consistsof = arg[1][0][0].consistsof; 
for (var i = 0; i < consistsof.length; ++i) { 
    console.log(consistsof[i][0]); 
} 


在JavaScript中,你可以使用[index]選擇從數組值(就像在其他編程語言中一樣)以及使用.property(如在Java中)的對象的屬性。

+1

不要使用「for in」語句對數組進行迭代 - 它不安全(http://javascript.crockford.com/code.html),對於索引遞增的'for'語句要慢。 – Microfed 2012-07-23 14:53:20

+0

更正以上,感謝您的提示。我已經知道'因爲'是不安全的(真可惜,它看起來比較酷xD),但我不知道它也慢了點...... – Aletheios 2012-07-23 15:15:16