如何动态创建二维数组?

Posted

技术标签:

【中文标题】如何动态创建二维数组?【英文标题】:How can I create 2D array dynamically? 【发布时间】:2015-07-15 05:34:21 【问题描述】:

我正在尝试创建二维数组,但出现错误。这是我的代码:

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:错误 #1010:术语未定义且没有属性。

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

在 flash.events::EventDispatcher/dispatchEventFunction()

在 flash.events::EventDispatcher/dispatchEvent()

在 flash.net::URLLoader/onComplete()

第 88 行:cleanArr[i][0] = arr[i].substring(0, 29);

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

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]);

【讨论】:

以上是关于如何动态创建二维数组?的主要内容,如果未能解决你的问题,请参考以下文章

C语言 动态创建二维数组

使用 ArrayList 创建一个动态二维整数数组

动态创建二维数组使用多少大小

动态创建二维数组

创建动态二维数组

一维动态数组和二维动态数组的创建和使用