Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

130
Vistas
How do I sort an objects array by id and name?

I want to sort an objects array by id and name.

Sample data:

 [
 {
      "case": {
        "name": "Exemple1"
      },
      "id": 3
    },
    {
      "case": {
        "name": "Exemple1"
      },
      "id": 2
    },
    {
      "case": {
        "name": "Exemple2"
      },
      "id": 1
    },
    {
      "case": {
        "name": "Exemple3"
      },
      "id": 4
    },
    {
      "case": {
        "name": "Exemple2"
      },
      "id": 6
    }
  ]

I want to sort by id and the name field in the case object ? Is it possible to use two criteria in sort?

Expected result:

 [
    {
      "case": {
        "name": "Exemple1"
      },
      "id": 2
    },
        {
      "case": {
        "name": "Exemple1"
      },
      "id": 3
    },
    {
      "case": {
        "name": "Exemple2"
      },
      "id": 1
    },
    {
      "case": {
        "name": "Exemple2"
      },
      "id": 6
    },
    {
      "case": {
        "name": "Exemple3"
      },
      "id": 4
    }
 ]

How can I use two criteria in my sort?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Sure it's possible.

The Array#sort method takes an optional parameter called compareFunction that represents the logic to perform when sorting any two items in the array.

By passing a function that compares first by case.name then by id, you can sort your array by both criteria. Here's a simple example, though you'll likely want to add error checking so you don't try reading an undefined property.

const unsortedData =  [
  { "case": { "name": "Exemple1" }, "id": 3 },
  { "case": { "name": "Exemple1" }, "id": 2 },
  { "case": { "name": "Exemple2" }, "id": 1 },
  { "case": { "name": "Exemple3" }, "id": 4 },
  { "case": { "name": "Exemple2" }, "id": 6 }
];

const sortedData = unsortedData.sort((a, b) => {
  if (a.case.name > b.case.name) return 1;
  if (a.case.name < b.case.name) return -1;
  if (a.id > b.id) return 1;
  if (a.id < b.id) return -1;
  return 0;
});

console.dir(sortedData);

about 4 years ago · Juan Pablo Isaza Denunciar

0

You can use array#sort with custom comparator. You can use conditional OR to compare on multiple condition.

arr.sort((a,b) => a.case.name.localeCompare(b.case.name) || a.id - b.id)

const arr = [{ "case": { "name": "Exemple1" }, "id": 3 }, { "case": { "name": "Exemple1" }, "id": 2 }, { "case": { "name": "Exemple2" }, "id": 1 }, { "case": { "name": "Exemple3" }, "id": 4 }, { "case": { "name": "Exemple2" }, "id": 6 } ];
arr.sort((a,b) => a.case.name.localeCompare(b.case.name) || a.id - b.id);
console.log(arr);
.as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda