viernes, 9 de marzo de 2012

Eliminar valores duplicados en un arreglo en Javascript



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. 


5 comentarios:

  1. Existe una mejor alternativa: http://www.etnassoft.com/2011/06/24/array-unique-eliminar-valores-duplicados-de-un-array-en-javascript/

    ResponderEliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  3. esutoraiki estas equivocado el link:http://www.etnassoft.com/2011/06/24/array-unique-eliminar-valores-duplicados-de-un-array-en-javascript/

    NO es la mejor manera por que NO lo logra eliminar los elementos repetidos de arrays de este tipo: [[1,1],[1,1],[1,1],[1,2]]
    mientras este SI

    Por lo tanto este es la mejor forma de eliminar arrays duplicados

    ResponderEliminar
  4. Esto era lo que necesitaba, muchísimas gracias :)

    ResponderEliminar