编辑:下面每个回答都有效,感谢你的帮助!
我目前在学习as3中的数组拼接。 这是我的代码:
//import classes
import flash.utils.Timer;
import flash.events.*;
//variables
var Arr:Array=new Array();
var num:Number=0;
//set a timer and set timer limit of 10 times
var timer:Timer=new Timer(1000,10);
//add a listener to our timer object
timer.addEventListener(TimerEvent.TIMER, tick);
timer.addEventListener(TimerEvent.TIMER_COMPLETE,tock);
//tick function
function tick(e:TimerEvent):void{
//i add an element each time the timer 'ticks'
Arr.push(['index'+num]);
num++;
}
//tock function
function tock(e:TimerEvent):void{
trace('array elements :'+Arr);//traces Arr elemnts
for(var i:int=0;i<Arr.length;i++){
Arr.splice(i,1);// i've tried Arr.splice(0,1), but neither working
trace('elemnts left : '+Arr);
}
我不是很理解问题,但这是结果:
1.并没有移除Arr数组中的每个元素。 2.在切割之前,Arr数组最大长度为十。然而,在循环中,只切割了少于十次,这导致了上述问题。
有人对此有想法吗? 请帮帮我。
Arr.length
,这个值在每次循环迭代时都会改变。第一次迭代时,它检查i
(当前为0)是否小于10。然后你删除一个项目并将i
增加到1。在下一次迭代中,它检查i
(现在为1)是否小于9。你明白我的意思了吗? - user2655904