flex Array去重
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>
posted on 2011-09-13 15:36 破阵子 . 如是我闻 阅读(523) 评论(0) 编辑 收藏 举报