Aqui les traigo una funcion para eliminar valores duplicados en un arreglo en javascript , la manera en que funciona es por medio de los objetos , la descubri hace algun tiempo en otro blog por lo que no recuerdo el link para hacer honor a su autor .
La teoria es que los objetos se componen asi
{ key : "valor" } la key siempre es unica y el valor se puede repetir , valiendose de este principio es que la funcion trabaja a la perfeccion devolviendo un arreglo sin valores duplicados .
function eliminateDuplicates(arr) {
var i,
len=arr.length,
out=[],
obj={};
for (i=0;i<len;i++) {
obj[arr[i]]=0;
}
for (i in obj) {
out.push(i);
}
return out;
}
un ejemplo seria:
var a = [ 1 , 2 ,3 ,1 , 1 ];
eliminateDuplicates(a);
devolvera : a [ 1, 2, 3]
mas facil no puede ser , he visto otros codigos por ahi un tanto complejos pero este es el mas sencillo que he encontrado.