En ocasiones, se tiene una matriz o Array en Flash que contiene valores duplicados y se requiere que ese Array tenga valores únicos... ¿Cómo se puede hacer?
A continuación escribo un ejemplo aunque siempre existen muchos caminos para encontrar una misma solución, uno que a mi se me ocurre es de la siguiente forma:
function eliminarDuplicado(arr: Array): Array {
// Creamos un new Dictionary y ponemos cada entrada dentro del diccionario como llaves (keys)
var hashMap: Dictionary = new Dictionary();
for each(var thisPerson: * in arr) {
// Todas los valores de entradas duplicadas serán sobreescritos
hashMap[thisPerson] = true;
}
// Convertimos la variable hashmap devuelta a la matriz
arr = [];
for (var thisKey: * in hashMap) {
arr.push(thisKey);
}
return arr
}
var listaDePersonas:Array = ["Mariana", "Ana", "Fernando", "Julia", "Mariana", "Ana", "Ana", "Mauricio", "María Luisa"];
trace(listaDePersonas);
// El output o la salida nos muestra: Mariana,Ana,Fernando,Julia,Mariana,Ana,Ana,Mauricio,María Luisa
var listaActualizadaDePersonas:Array = eliminarDuplicado(listaDePersonas);
trace(listaActualizadaDePersonas);
//La salida ya no tiene valores duplicados: Julia,Mariana,Mauricio,Ana,María Luisa,Fernando
En ocasiones, puede ser que se quiera saber cuántas entradas estaban duplicadas en el Array y el número de ocurrencias, pero eso, ya es tema para otra ocasión. Espero que les sirva este tutorial.