2013-10-09 2 views
1

У меня есть массивНайти длину внутреннего массива в ActionScript3

var arr:Array = new Array({num1:1, num2:2}, {num1:1, num2:2}); 

И я хочу, чтобы получить длину первого внутреннего массива, как это:

trace(arr[0].length); //should return 2 but it doesnt work 

Кроме того, почему обр [ 0] [0] не работает? я должен указать обр [0] [ 'имя']

+0

{} используется для представления объектов, [] являются используется для объявления массива. Измените его на [] в конструкторе массива. – Zeus

+0

[num1: 1, num2: 2] это возвращает ошибку, я хочу задать имена для массива – Alex

+2

'[1, 2]'. Массивы не ассоциативны в AS3 –

ответ

5

вы объявляете массив объектов ...,

Массив массива как

var arr:Array = new Array([1,2],[1,2]); 

, а затем вы может иметь ваш arr [0] .length.


Чтобы добавить имена в качестве индекса, вы можете использовать свою первую декларацию, и изменить его немного,

var arr:Array = new Array({num1:[1,2], num2:[2]}, {num1:[1,2,3], num2:[1,2]}); 

так что теперь у нас есть массив обр, который содержит объекты, которые содержат массивы, к прочитайте элементы, которые вы можете:

for each(var o:object in arr){ 
    o.num1.length(); // give you the legth of the array inside num1 = 2 for the first case, 
    o.num2.length(); 
} 

вопрос в том, будут ли все объекты внутри вашего массива одинаковыми или нет? потому что, если они этого не сделают, вам будет немного сложно прочитать элементы ... дайте мне знать, и я надеюсь, что это поможет ... Приветствия!


Найдено что-то другое, что может помочь вам, array access, и вы можете получить доступ с помощью что-то вроде этого: obj["num"+1], которые делают его более динамичным и проще в обращении

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