0

我有一个像 var test:Array = new Array("a", "b", "c"); 每次调用此方法时,如何编写一种方法来获取一个元素并使其成为字符串。即当我调用该方法时,它应该只返回'a',下次只返回'b',依此类推。

4

2 回答 2

3

您可以使用数组的函数移位,这里是关于函数数组移位的链接

var test:Array = new Array("a", "b", "c"); 
var firstLetter:String = test.shift();//"a"
var secondLetter:String = test.shift();//"b"
var thirdLetter:String = test.shift();//"c"
于 2013-09-02T11:38:35.957 回答
1

@Pan 的回答是正确的,但我觉得有必要指出这样一个事实,即shift()点燃了重新索引整个数组的极其缓慢的过程。对于示例中的小型数组,您不需要关心它,但是对于较大的数组,如果您reverse()先使用数组然后使用pop(). 我将在下面创建一个性能比较。

设置我们的测试数组:

var shiftCopy:Array = [];
var popCopy:Array = [];

for(var i:int = 0; i < 100000; i++)
{
    var rand:Number = Math.random() * i;

    shiftCopy.push('a' + rand);
    popCopy.push('a' + rand);
}

运行测试:

// Using shift.
var t:int = getTimer();
while(shiftCopy.length > 0) shiftCopy.shift();
trace(getTimer() - t);


// Using reverse and pop.
t = getTimer();
popCopy.reverse();
while(popCopy.length > 0) popCopy.pop();
trace(getTimer() - t);

我的结果:

shift:  1651ms
pop:    19ms
于 2013-09-03T02:43:54.670 回答