创建多维数组(n维)

时间:2013-07-20 12:04:52

标签: arrays actionscript-3

我有一个字符串:a - b - c,我想创建一个数组。

A []>> B []>> C []

var f:Array = "a-b-d".split('-');
var tree:Array = new Array;
for (var i:Number=0; i < f.length ;  i++)
{
   var o:Object = new Object
  o.name = f[i];
  o.path = f.slice(0,i);
 o.isDirectory = (i == f.length)? false :true ;
}

我想要这个

var x:Array = new Array(new Array(new Array()));

这是正确的方法吗?或者我该怎么办?

1 个答案:

答案 0 :(得分:0)

是的,您可以在数组中创建一个多维数组。在给定数据模型的情况下,创建“对象”并将Array作为这些对象的集合可能很有用。创建帮助方法来搜索,检索,更新和删除该结构中的项目可能很有用。

问题是你的字符串结构如何?它只有3层深吗?这是未经测试的代码,并且基于您已经假设您的字符串结构只是深度设置的假设。

以下是使用您的代码的方法:

var f:Array = "a-b-c".split('-');

// create first dimension of arrays (tree)
var tree:Array = new Array();
var secondTree:Array = new Array();
var thirdTree:Array = new Array();

secondTree.push(thirdTree);
tree.push(secondTree);

// create second dimension of arrays (tree)
for (var i:int=0; i < f.length;  i++)
{
   var o:Object = new Object
   o.name = f[i];
   o.path = f.slice(0,i);
   o.isDirectory = (i == f.length)? false : true;

   if(i%3 == 0) {
     thirdTree.push(o);
   } else if(i%2 == 0) {
     secondTree.push(o);
   } else {
     tree.push(o);
   }
}