Esses dias tive a necessidade de implementar um algoritmo de filtro no Adobe Flex para filtrar um ArrayCollection para gerar um novo ArrayCollection de saída com elemento não repetidos “Distinct”, caso você precise de algo assim também, segue o código AS3:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | private function filterDistinctValue(arr:ArrayCollection, field:String):ArrayCollection { if( arr == null || field == null || field.length == 0 ) { return null; } var arrOut:ArrayCollection = new ArrayCollection(); var objAux:Object = {}; for(var i:int = 0; i < arr.length; i++) { var key:String = arr[i][field] if( objAux[key] == null ) { objAux[key] = arr[i]; arrOut.addItem( arr[i] ); } } objAux = null; return arrOut; } |
Obs.: Esta função recebe 2 parâmetros, o ArrayCollection a ser filtrado, e qual o campo a ser considerado, leia-se atributo de um objeto que está alocado no ArrayCollection.







segunda-feira, 08/03/2010 5:18 pm
Me ajudou!
Valeu