Ordenar Array de JSON-Javascript

publicado por: Anonymous

Tengo un array de JSON en un arreglo llamado var ArregloDatos:

ArregloDatos
introducir la descripción de la imagen aquí

Resulta que quiero ordenar este arreglo del tal forma que el mismo se orden de menor a mayor dependiendo su nombre, es decir en el ejemplo anterior tendría que ser “Ana-Hernan-Victor“, uso la siguiente función:

//FUNCION QUE ORDENA POR NOMBRE LOS ARREGLOS
    function OrdenarPorNombre(x, y) {
        return ((x.nombre == y.nombre) ? 0 : ((x.nombre > y.nombre) ? 1 : -1));
    }

Pero a la hora de querer imprimir el resultado del arreglo:

console.log(ArregloDatos.sort(OrdenarPorNombre));

El problema que veo es que queda de la forma [{nombre:xxx, apellido:xxxx}],[{nombre:xxx, apellido:xxxx}]y no de la forma [{nombre:xxx, apellido:xxxx},{nombre:xxx, apellido:xxxx}] pero no se como puedo unirlos que en lugar que quede en un arreglo de arreglos quede un solo bloque JSON

solución

Esto es un array de objetos en el cual cada “{}” es un objeto y “[]” es el array que contiene todos los objetos.

array_objetos = [
      {"nombre": "Piero", "apellido": "Pajares"},
      {"nombre": "Alejandro", "apellido": "Orihuela"},
      {"nombre": "Daniel", "apellido": "Rojales"},
    ]

Ahora a ese array de objetos lo ordenas como lo estuviste haciendo:

array_objetos.sort(function(a, b) {
    var textA = a.nombre;
    var textB = b.nombre;
    return (textA < textB) ? -1 : (textA > textB) ? 1 : 0;
});
console.log(array_objetos)

Lu unico que tienes que hacer si los datos te llegan del servidor es guardarlos todos en un solo array “[]” por ejemplo te llega un array de objetos de personas:

array_personas = [
          {"nombre": "Piero", "apellido": "Pajares"},
          {"nombre": "Alejandro", "apellido": "Orihuela"},
          {"nombre": "Daniel", "apellido": "Rojales"},
        ]

recorres el array e insertas en el array que quieres que esten todos los objetos:

array_personas.forEach(function(element) {
  array_objetos.push(element)
});
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *