现在是晚上的7点,对着电脑,依旧的代码,看了一些编程,有很多很有趣的事情。把今天记录的事情记录一下,看了一些绘图API的做法,真的有点变得疯狂了。今天对flash数组的删除发现有点意思,原本以为采用splice 删除数组一个数字可以弄出个办法来,结果发现删除多个指定位置数就遇到一些问题,可能还没有发现更好的方法,删除任意位置,任意个数的值。
问题:怎样删除数组里面指定的多个数?
例如:var array:Array=[1,2,3,4,5];
现在要删除第二个数2,下标为1,则array.splice(1,1); // trace(array)1,3,4,5;
删除一个,现在我们进行删除指定的多个数。例如删除2,3,4 这三个数,我们这里有一种做法,不一定很完善,但是依然可行
先把要删除的数 设置一个标记如0。array=[1,0,0,0,5];这样制作。
然后通过搜索判断,重新重组一个数组。
array=getNewArray(array,0);
这样也许能够返回一个新的数组了,不知道你有没有更好的办法,不妨告诉我。 可能正则表达式也可以,但是对那个依旧不熟悉。
//获取新的数组,用于过滤数组的内容 public function getNewArray(myarray:Array,value:*):Array { var Temp:Array=new Array(); for (var i:int=0; i<myarray.length; i++) { if (myarray[i]!=value) { Temp.push(myarray[i]); } } return Temp; }
第二种:采用过滤的办法 是Anson 提供了办法
var array:Array=[1,2,3,4,5,6];for(var i:int=0;i<array.length;i++){ if(array[i]==2||array[i]==3||array[i]==4) { array[i]=0; }}function callback(item:*, index:int, array:Array):Boolean{ if(item==0)return false else return true }var newArray:Array=array.filter(callback)trace(newArray)
问题:怎样删除数组里面所有数?
简单的办法就是使用如同堆栈里面的pop方法,循环一个个删除掉
//删除数组里所有的数据 public static function clearArray(array:Array):void { while (array.length) { array.pop(); } }
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow