问题:怎样将一个数组中相同的数据项剔除掉?
思路:
1)对原数组按升序排序
2)新建一个临时数据
3)遍历原数组的每一项,并将其与临时数组的最后项进行比较。若不相等则讲数据项插入临时数组,否则跳过。
package
{
import flash.display.Sprite;
import flash.utils.Dictionary;
import flash.utils.getTimer;
public class Test extends Sprite
{
private var _arr:Array=[1, 1, 1, 2, 2, 4, 4, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 4, 4, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 4, 4, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 4, 4, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 4, 4, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
private var _result:Array=[];
private var _t:Number=0;
private var _total:int=-1;
public function Test()
{
_t=getTimer();
_arr.sort();
for (var i:uint=0; i < _arr.length; i++)
{
if (_arr[i] != _result[_total])
{
_result.push(_arr[i]);
_total++;
}
}
trace(_result.toString());
}
}
}