[Adobe Flex] filtrando um ArrayCollection : Distinct

quarta-feira, 20/01/2010 10:24 pm  

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:


?View Code ACTIONSCRIPT
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.

, , , , , ,

Este post foi escrito por:

- que escreveu 500 post(s).


Entre em contato

  • Rose

    Me ajudou!
    Valeu