当前位置: 代码迷 >> Web前端 >> AS3-在一个循环内剔除多个元素
  详细解决方案

AS3-在一个循环内剔除多个元素

热度:124   发布时间:2012-08-26 16:48:06.0
AS3-在一个循环内删除多个元素

在一个循环内删除多个元素

?

package
{
	import flash.display.Sprite;

	public class TestArrayDelete extends Sprite
	{
		public function TestArrayDelete()
		{
			var needDeleteNum:int = 0;
			var allElementVector:Vector.<TestElement> = new Vector.<TestElement>();
			for (var i:int = 0; i < 100; i++)
			{
				var newE:TestElement = new TestElement();
				newE.elementIndex = i;
				newE.isDelete = Random.boolean;
				if (newE.isDelete)
				{
					needDeleteNum++;
				}
				allElementVector.push(newE);
			}
			trace("--->Need DeleteNum : " + needDeleteNum);
			trace("================");
			var totalDeleteNum:int = 0;
			var totalLoopNum:int = 0;
			//反向遍历删除数组
			for (var j:int = allElementVector.length - 1; j >= 0; j--)
			{
				var delE:TestElement = allElementVector[j];
				if (delE.isDelete)
				{
					allElementVector.splice(j, 1);
					totalDeleteNum++;
				}
				totalLoopNum++;
			}
			trace("--->Total DeleteNum : " + totalDeleteNum);
			trace("--->Total LoopNum : " + totalLoopNum);
		}
	}
}
  相关解决方案