JavaScriptTableaux

Array.prototype.sort()

Trie les éléments du tableau sur place et renvoie ce même tableau.

Renvoie
Ce même tableau, trié.
Modifie l’original
Oui
Sur cette page

Exemple

#
JavaScript
const numbers = [10, 9, 1, 25]

console.log([...numbers].sort())
console.log([...numbers].sort((a, b) => a - b))
console.log([...numbers].sort((a, b) => b - a))
Console
[1, 10, 25, 9]
[1, 9, 10, 25]
[25, 10, 9, 1]

Définition et utilisation

#

La méthode sort() ordonne les éléments du tableau selon la fonction de comparaison donnée. Elle modifie l’original et renvoie une référence à ce même tableau.

Sans fonction de comparaison, les éléments sont convertis en chaînes et triés par ordre alphabétique selon les codes de caractères. C’est pourquoi [10, 9, 1].sort() donne [1, 10, 9]. Triez toujours les nombres avec la fonction (a, b) => a - b.

La fonction de comparaison renvoie un nombre négatif quand a doit venir avant b, positif quand il doit venir après, et zéro quand l’ordre importe peu. Pour les chaînes avec des accents, utilisez localeCompare().

Syntaxe

#
Syntaxe
array.sort()
array.sort(compareFn)

Paramètres

#
  • compareFn

    function (a, b)

    Fonction de comparaison. Un résultat négatif place a avant b.

Plus d’exemples

#
Trier des objets et des chaînes accentuées
JavaScript
const students = [
  { name: 'Zoé', points: 90 },
  { name: 'Léa', points: 120 },
  { name: 'Émile', points: 90 }
]

const byName = [...students].sort((a, b) => a.name.localeCompare(b.name, 'fr'))
console.log(byName.map((s) => s.name))
Console
['Émile', 'Léa', 'Zoé']

Compatibilité des navigateurs

#

Largement disponible

Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.

  • Chrome
  • Edge
  • Firefox
  • Safari

Bonnes pratiques

#
  • Triez toujours les nombres avec la fonction (a, b) => a - b. Le tri par défaut les traite comme du texte.
  • Si vous ne voulez pas modifier l’original, utilisez toSorted(), ou triez une copie [...array].

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.