Что некорректно в этом коде?!

Код:
var arr:Array = [];
arr[0] = []
arr[0][0] = "ege"
arr[0][1] = "fgh"
trace(arr[0].length)
//Выведет 2
Здесь без потери ранее записанных данных при изменении размерности массива не обойтись. Потому и не работает.
Нужно определить размерность массива заранее. А вот размер каждого измерения Вы можете создавать динамически.
Цитата:
 Код:
var a:Array = [];
a[0] = [];
a[0][0] = 'AGA';
a[0][0][0] = []
a[0][0][0] = 'UGU';
trace(a[0][0][0]);
|
Давайте разберем этот код подробнее для понимания проблемы.
В первой строке Вы создаете одномерный массив a.
Во второй строке, Вы создаете второе измерение массива a
В третьей строке Вы присваиваете ячеке двумерного массива значение "АGA". Пока все вроде бы корректно.
В четвертой строке, Вы пытаетесь создать уже четвертое измерение минуя 3. Разумеется это невозможно. Поэтому, Вы вынуждены будете ячейку a[0][0] =="AGA" переопределить массивом создающим 3-е измерение. Разумеется "AGA" сохранено не будет.

Код:
var a:Array = [];
a[0] = [];
a[0][0] = 'AGA';
a[0][0] = []
a[0][0][0] = 'UGU';
trace(a[0][0][0]);
//"AGA" больше не существует!!!