Comment trier un tableau d'objets par une valeur de propriété en JavaScript

Découvrez comment trier un tableau d'objets par valeur de propriété dans JavaScript


Supposons que vous ayez un tableau d'objets comme celui-ci:

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

Vous voulez rendre cette liste, mais vous voulez d'abord la classer en fonction de la valeur de l'une des propriétés. Par exemple, vous souhaitez le classer par nom de couleur, par ordre alphabétique: noir, rouge, blanc.

Vous pouvez utiliser lesort()méthode deArray, qui prend une fonction de rappel, qui prend comme paramètres 2 objets contenus dans le tableau (que nous appelonsaetb):

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

Lorsque nous retournons 1, la fonction communique àsort()que l'objetba priorité dans le tri sur l'objeta. Retour-1ferait le contraire.

La fonction de rappel peut également calculer d'autres propriétés, pour gérer le cas où la couleur est la même, et également ordonner par une propriété secondaire:

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

Téléchargez mon gratuitManuel du débutant JavaScript


Plus de tutoriels js: