Flex 去除ArrayCollection 或 Array重复元素!

 
var ac:ArrayCollection = new ArrayCollection();  
     
// init  
ac.addItem("1");  
ac.addItem("2");  
ac.addItem("2");  
ac.addItem("3");  

var nac:ArrayCollection = new ArrayCollection();  

// 循环放入新的arraycollection中,已经存在则不进行重新添加  
for each(var item:String in ac)  
{  
    if(nac.contains(item))  
    continue;  
    nac.addItem(item);  
}  


Array 去重:
两种方式都可以。
一种是key方式,一种是Value方式。
key方式代码如下:
var ary:Array = [1,5,4,8,1,4,6,11,5];
var nAry:Array = [];
ary.forEach(function(item:*, idx:int, ary:Array):void {
    nAry[item] = null;
});
//这里的Key就是唯一的了
for(var key:* in nAry) {
    trace(key);
}
value方式代码如下:
var ary:Array = [1,5,4,8,1,4,6,11,5];
var nAry:Array = [];

ary.forEach(function(item:*, idx:int, ary:Array):void {
    if(nAry.indexOf(item)==-1)
        nAry.push(item);
});

nAry.forEach(function(item:*, idx:int, ary:Array):void {
    trace(item);
});


ArrayCollection 去重为有序,Array 去重后为乱序。


ArrayCollection 和 Array 之间的互转
1
var mydb:Array = new Array([],[],[])
var guidedb:ArrayCollection = new ArrayCollection(mydb);

2
var mydb:ArrayCollection = new ArrayCollection ([],[],[])
var guidedb:Array = mydb.source;




你可能感兴趣的:(Flex 去除ArrayCollection 或 Array重复元素!)