Cómo ordenar una matriz de objetos por un valor de propiedad en JavaScript

Descubra cómo ordenar una matriz de objetos por un valor de propiedad en JavaScript


Digamos que tiene una matriz de objetos como esta:

const list = [
  { color: 'white', size: 'XXL' },
  { color: 'red', size: 'XL' },
  { color: 'black', size: 'M' }
]

Desea representar esta lista, pero primero desea ordenarla por el valor de una de las propiedades. Por ejemplo, desea ordenarlo por el nombre del color, en orden alfabético: negro, rojo, blanco.

Puedes usar elsort()método deArray, que toma una función de devolución de llamada, que toma como parámetros 2 objetos contenidos en la matriz (que llamamosayb):

list.sort((a, b) => (a.color > b.color) ? 1 : -1)

Cuando devolvemos 1, la función se comunica consort()que el objetobtiene prioridad en la clasificación sobre el objetoa. Regresando-1haría lo contrario.

La función de devolución de llamada también podría calcular otras propiedades, para manejar el caso en el que el color es el mismo y ordenar por una propiedad secundaria también:

list.sort((a, b) => (a.color > b.color) ? 1 : (a.color === b.color) ? ((a.size > b.size) ? 1 : -1) : -1 )

Más tutoriales de js: