我有一个像var test这样的数组:Array = new Array(“a”,“b”,“c”);如何在每次调用此方法时编写一个方法来获取一个元素并使其成为字符串。即当我调用该方法时,它应该只返回'a'而下一次只返回'b',依此类推。
答案 0 :(得分:3)
您可以使用Array的函数移位,这是一个关于函数array shift
的链接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"
答案 1 :(得分: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