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>