2015-05-05 3 views
0

Я пытаюсь создать массив 2d, однако я получаю ошибку. Вот мой код:Как я могу создать 2D-массив динамически?

var cleanArr:Array = new Array(); 
for (var i:int = 0; i < arr.length; i++) 
{ 
    cleanArr[i][0] = arr[i].substring(0, 29); 
    cleanArr[i][1] = arr[i].substring(29, int.MAX_VALUE); 

    trace(cleanArr[i]); 
} 

Я получаю эту ошибку:

TypeError: Error #1010: A term is undefined and has no properties.

at SubtitleLoader/onComplete()[C:\Users\ ... \SubtitleLoader.as:88]

at flash.events::EventDispatcher/dispatchEventFunction()

at flash.events::EventDispatcher/dispatchEvent()

at flash.net::URLLoader/onComplete()

Line 88: cleanArr [я] [0] = обр [я] .substring (0, 29);

Как это исправить?

ответ

2

cleanArr полностью пуст, это не 2D-массив. Чтобы быть двумерным массивом, элементы в нем должны быть массивами. В вашем коде они вообще не существуют. Сначала вам нужно создать массив в данной позиции. Попробуйте следующее:

var cleanArr:Array = new Array(); 
for (var i:int = 0; i < arr.length; i++) 
{ 
    cleanArr[i] = new Array(); 
    cleanArr[i][0] = arr[i].substring(0, 29); 
    cleanArr[i][1] = arr[i].substring(29, int.MAX_VALUE); 

    trace(cleanArr[i]); 
} 
+0

благодарим за ответ. это прекрасно работает. – nikel

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