none
QUITAR ELEMENTOS DUPLICADOS DE UN ARRAY EN JAVASCRIPT RRS feed

  • Pregunta

  •            

    Buenas tardes,

    he estado buscando como loco, la forma de quitar elementos duplicados de un array en javascript, he encontrado ejemplos de quitar elementos como cadenas, mas no objetos, como pueden ver en mi código, yo lleno el array "listaGrupo02", una vez lo tengo lleno, me gustaría eliminar los elementos duplicados.
    Les agradezco la ayuda, gracias.

    var listaGrupo02 = [];

        for (i = 0; i < data.length; i++) {               

    if (data[i].CDGRUPO01 == CDGRUPO01) {                   

    listaGrupo02.push({ id: data[i].CDGRUPO02, value: data[i].DSGRUPO02 });

                    }           

    }


    viernes, 8 de julio de 2016 22:57

Todas las respuestas

  • hola alfredo ortega 7891

    Prueba realizando algo similar a:

    var listaGrupo02 = [];
    var SinDuplicados = [];
    var SinDuplicados = listaGrupo02.filter(function(elem, pos) {
       return listaGrupo02.indexOf(elem) == pos;
    });

    Y si estás con Jquery

    var listagrupo02= [];
    var SinDuplicados = [];
    $.each(listagrupo02, function(i, el){
        if($.inArray(el, SinDuplicados ) === -1) SinDuplicados .push(el);
    });

    Saludos y suerte!


    Javier


    sábado, 9 de julio de 2016 1:46
  • No funciona, ese código funciona con un arreglo de cadenas, mas hice algo que funciona pero no se si sera optimo, porque uso un for dentro de otro for.

    Encontré este método llamado : "arrayObjectIndexOf" que me sirve como un indexOf, sino que la diferencia es que con ese método puedo elegir la propiedad a comparar. 

    Si tienen mejores ideas, soy todo oídos :

    function listaDuplicada() {  var lista = [];         

    listaGrupo02.forEach(function (entry) {                if (lista.length == 0) {                    lista.push(entry);                }                else {                    if (arrayObjectIndexOf(lista, entry.id, "id") == -1) {            lista.push(entry);                    }                }            });            alert(lista.length);        }        function arrayObjectIndexOf(myArray, searchTerm, property) {     for (var i = 0, len = myArray.length; i < len; i++) {             if (myArray[i][property] === searchTerm) return i;            }            return -1;        }


    sábado, 9 de julio de 2016 17:03
  • Muy interesante y buena solución

    gracias por el apoyo.

    tome el ejemplo con Jquery

    viernes, 14 de julio de 2017 15:59