1去重
2满足一定条件的筛选
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()" layout="absolute" fontSize="12" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#FCFCFC, #FCFCFC]">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.events.CloseEvent;
public var temp:String="";
[Bindable]private var filteredArr:Array;
[Bindable]private var plistArr:Array;
[Bindable]
public var users:Array =[{id:1,username:"aaa", dept:"开发部"},
{id:2,username:"bbb", dept:"产品部"},
{id:3,username:"ccc", dept:"开发部"},
{id:4,username:"ddd", dept:"产品部"}];
private function init():void{
filteredArr = users.filter(removedDuplicates);
}
private var keys:Object = {};
private function removedDuplicates(item:Object, idx:uint, arr:Array):Boolean {
if (keys.hasOwnProperty(item.dept)) {
return false;
} else {
keys[item.dept] = item;
return true;
}
}
private function closeHandler(event:Event):void {
temp=String(ComboBox(event.target).selectedItem.dept);
plistArr=users.filter(conditionFunction);
}
private function conditionFunction(item:Object, idx:uint, arr:Array):Boolean {
if (item.dept==temp){
return true ;
}else{
return false;
}
}
]]>
</mx:Script>
<mx:Form width="293" height="152" horizontalCenter="0" verticalCenter="0" borderStyle="solid">
<mx:FormItem label="部门:" width="250">
<mx:ComboBox close="closeHandler(event);" labelField="dept" dataProvider="{filteredArr}" width="100%"></mx:ComboBox>
</mx:FormItem>
<mx:FormItem width="250">
<mx:Repeater id="checkBoxRepeater" dataProvider="{plistArr}">
<mx:CheckBox id="checkBox" label="{checkBoxRepeater.currentItem.username}"/>
</mx:Repeater>
</mx:FormItem>
</mx:Form>
</mx:Application>
![](/image//upload/attachment/125989/8f8955d9-b4a9-3064-820d-34f43abbaa21.jpg)