我有一个对象数组,如下所示:
SomeObject (Array)
[0] (object)
id = 1
name = 'one'
[1] (object)
id = 2
name = 'two'
我需要它是一个数组数组,如下所示:
someobject (array)
[0](array)
id = 1
name = 'one'
[1](array)
id = 2
name = 'two'
如果我这样做:
test:Array = someobject as Array
这只会转换顶部而不是内部对象。如果我尝试遍历它并将各个数组作为数组',它就会变为空。
任何想法?
答案 0 :(得分:1)
你需要一个包含数组的数组,每个数组都包含单个对象吗?然后你必须创建新的数组并推入新的数组。类型转换无法转换嵌套对象。
var mainArray:Array = SomeObject as Array
var newArray:Array = [];
for each (var o:Object in mainArray) {
newArray.push([o]);
}
答案 1 :(得分:0)
不,我认为这不是意思......
它基本上是从对象到数组的转换。那将是:
var myTestArr:Array = new Array();
// FILL IT (for testing)
var myTestArr2:Array = getArrofArr(myTestArr); // This will be the result
function getArrofArr(inArr:Array):Array {
var retArr:Array = new Array();
for (var entry in inArr){
var addArr:Array = new Array();
for (var entryKey in inArr[entry]){
addArr[entryKey] = inArr[entry][entryKey];
}
retArr[entry] = addArr;
}
return retArr;
}
答案 2 :(得分:0)
我看到你想要数组,但是如果我建议你使用词典呢?
var someObject:Array=new Array();
for(var i:int=0;i<3;i++)
{
var d:Dictionary=new Dictionary();
d["id"]=i;
d["name"]="name"+i.toString();
someObject.push(d);
}
答案 3 :(得分:0)
as
根本不会转换任何内容
此外,没有必要这样做,你正在做什么。使用字符串键时,Object
和Array
之间没有区别。那你为什么要那样做?
格尔茨
back2dos