博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ActionScript实现数组快速去重算法
阅读量:4661 次
发布时间:2019-06-09

本文共 1901 字,大约阅读时间需要 6 分钟。

        今天在写flex时遇到了,需要过滤数组中重复数据的问题,查询后发现,flex没有java中set这样的集合,可以用来直接去重。

就简单的写了个快速去重算法,测试了一下,速度挺快的。我array里是String类型,如果类型是其它的,替换String就行了。肚子饿的很,今天不加班了。。早早的回吧。

 

/** * Created with IntelliJ IDEA. * User: DongYang * Date: 13-3-25 * Time: 下午7:46 * Progress every day a little more. */package com.skycloud.nettopo.util {public class DataUtil {    public static function  filterRepeat(array:Array):Array{        array.forEach(function (str:String, i:int, a:Array):void { //我这里array里的元素为String类型            if (array.length != rr(array, str).length) {                array = rr(array, str);                array = filterRepeat(array);            }        });        return array;        function rr(lines:Array, str:String):Array {            lines = lines.filter(function (ss:String, ii:int, aa:Array):Boolean{                return ss != str;            });            lines = lines.concat(str);            return lines;        }     }}}

 2013.5.3 新增两种去重算法。

public static function  removedDuplicates1(oldArray:Array):Array{          var keys:Object = {};          var key:Dictionary=new Dictionary();           var newArray:Array=oldArray.filter(function(item:Object,index:uint,array):Boolean{                       if (keys.hasOwnProperty(String(item))) {                return false;            } else {                keys[item] = item;                return true;            }                     });                  return newArray;      }    public static function  removedDuplicates2(oldArray:Array):Array{        var keys:Dictionary=new Dictionary();        var newArray:Array=oldArray.filter(function(item:String,index:uint,array):Boolean{            if (keys[item]==item) {                return false;            } else {                keys[item] = item;                return true;            }        });        return newArray;    }

 

转载于:https://www.cnblogs.com/yangpigao/archive/2013/03/25/2981375.html

你可能感兴趣的文章