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
Exemple
#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))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
#array.sort()
array.sort(compareFn)Paramètres
#compareFn
function (a, b)
Fonction de comparaison. Un résultat négatif placeaavantb.
Plus d’exemples
#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))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
#- Array.prototype.toSorted()Renvoie une copie triée du tableau, sans modifier l’original.
- Array.prototype.reverse()Inverse l’ordre des éléments du tableau sur place.
- String.prototype.localeCompare()Compare deux chaînes selon les règles d’une langue. Renvoie un nombre négatif, zéro ou un nombre positif, idéal pour trier.
Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.