2015-05-05 138 views
0

我想创建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()

线88:cleanArr [I] [0] =改编[I] .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