arrays - AS3 :removing every elements in an array at once using for loop

标签 arrays actionscript-3 flash actionscript flash-cs5

编辑:下面的每个答案都有效,感谢帮助我!

我目前正在学习在 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的最大长度在拼接前是十次。但是在循环中,它只拼接了不到十次,导致了上面的问题

有人对此有什么想法吗?
请帮帮我

最佳答案

有更简单、更快的选择:

您可以将 Array 的长度设置为 0。这将有效地一次删除其所有元素。

Arr.length = 0;

您可以创建 Array 类的新空实例。这不会立即销毁原始对象,但是如果没有对它的引用,它最终会被垃圾收集器消耗掉,因此您无需考虑它。
// You can omit () with the "new" operator if there are no mandatory arguments.
Arr = new Array;

关于arrays - AS3 :removing every elements in an array at once using for loop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51518418/

相关文章:

actionscript-3 - 检测数组中的最后一项何时停止

actionscript-3 - 从 swf 构建 exe 和 app 应用程序

java - 尝试从 ArrayList 中为每个用户打印出来

java - 创建未知长度的数组

java - 二维数组排序

javascript - 遍历对象数组生成d3桑基图数据

ios - 如何在运行时获取任何iOS应用程序的渲染模式

c# - C# 中的 MD5 哈希值与 Action Script 中的 MD5 哈希值不匹配

actionscript-3 - 什么 IDE 可用于 ActionScript 3 编码?

flash - 在ActionScript3中,如何获取对对象类的引用?