这可能是一个简单的,如果是,我相信我会感到愚蠢。
基本上,我有数组a1,a2和a3。
使用for语句..
for (var i 0; i < 4; i++) {
//stuff
}
如何使用i将for语句中的数据推送到其中一个数组中?也就是说,每次将数据添加到下一组中。 a [0] - &gt; a [1]等我试过getDefinitionByName,但它似乎只适用于库对象!
很抱歉,如果这很简单!
提前干杯。
编辑:
完整的代码我需要这个工作。这就是我尝试使用的第一个答案。
var fullList:Vector.<Array> = new Vector.<Array>();
for (var i1 = 0; i1 < 3; i1++)
{
fullList.push(new Array());
}
var levelLoader:URLLoader = new URLLoader();
levelLoader.addEventListener(Event.COMPLETE, levelLoaded);
function levelLoaded(e:Event):void
{
var indexcount = 0;
txttileArray = e.target.data.split("a");
txtDebug.text = txttileArray.toString();
for (var i = 1; i < 4; i++)
{
temparray1 = txttileArray[indexcount].split("");
for (var row = 0; row < temparray1.length; row ++)
{
var a = getDefinitionByName(temparray1[row] + "Tile") as Class;
//trace(a);
var b = new a ;
b.x = 17 + 17 * row;
b.y = 17 + 17 * indexcount;
addChild(b);
fullList[indexcount].push(b);
}
indexcount++;
}
}
对于凌乱的变量名称感到抱歉。
答案 0 :(得分:0)
启
您需要在Array中使用Array。
private var fullList:Vector.<Array>;
private var total:uint = 4;
function a():void
{
// first creating array list
fullList = new Vector.<Array>();
for (var i:uint = 0; i < total; i++)
{
fullList.push(new Array());
}
}
function b():void
{
// doing the stuff
for (var i:uint = 0; i < total; i++)
{
switch (i)
{
case 0:
fullList[i].push('zero-array-push');
break;
case 1:
fullList[i].push('one-array-push');
break;
case 2:
fullList[i].push('two-array-push');
break;
case 3:
fullList[i].push('three-array-push');
break;
}
}
}
答案 1 :(得分:0)
我有三个数组,a1,a2和a3。我希望能够访问这些 基于变量“i”的值的数组。所以例如,如果“我” 是1,我想将数据值推到a1。等等 - hazdog
如果您将数组a1,a2和a3作为本地(在函数中定义)变量,则无法执行此操作。如果它们是在课堂上定义的,那么这就是你如何做到的:
private var a1:Array=[];
private var a2:Array=[];
private var a3:Array=[];
private function pushValue(identifier:String, value:Object):int {
var name:String="a" + identifier;
var target:Array=this[name] as Array;
if(target == null) {
throw new Error("No such array " + name);
} else {
return target.push(value);
}
}
//And then call it like this:
pushValue("1", "This value goes in array a1");
pushValue("1", "This is another value that goes in array a1");
pushValue("2", "This value goes in array a1");
pushValue("2", "This is another value that goes in array a2");
pushValue("3", "This value goes in array a3");
pushValue("3", "This is another value that goes in array a3");
否则,您可以定义一个数组数组(或数组向量),比如放置目标数组的holderArray
,然后将值推送到holderArray[identifier]
修改强>
而不是在a1
对象中定义a2
,a3
和this
,而是像这样定义:
private var arrayHolder:Object={};
private function init():void {
for(var i:int=1; i<=3; i++) {
arrayHolder["a" + i]=new Array();
}
}
init();
然后,您的数组将存储为arrayHolder.a1
,arrayHolder.a2
,arrayHolder.a3
等
并修改pushValue如下:
变化
var target:Array=this[name] as Array;
到
var target:Array=arrayHolder[name] as Array;