2012-07-22 2 views
0

У меня есть многомерный объект в JavaScript со следующим structrure:многомерные массивы 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

+0

Итак, вы используете поплавки в качестве индексов? – Kos

+0

Это не массив javascript. –

ответ

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

+0

Исправил его выше, спасибо за подсказку. Я уже знал, что 'in in 'не безопасен (какой позор, он выглядит круче xD), но я не знал, что это также медленнее ... – Aletheios

Смежные вопросы