我有一个字符串: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()));
这是正确的方法吗?或者我该怎么办?
答案 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);
}
}