Comment trieriez-vous un tableau de nombres?
sobes.tech IA
Réponse de l'IA
// Utilisation de la méthode sort() avec une fonction de comparaison
const numbers = [4, 2, 5, 1, 3];
numbers.sort((a, b) => a - b); // Tri croissant
// Pour trier par ordre décroissant :
// numbers.sort((a, b) => b - a);
La méthode sort() en JavaScript trie les éléments du tableau sur place. Par défaut, elle convertit les éléments en chaînes et les trie lexicographiquement. Pour trier correctement des nombres, il faut passer une fonction de comparaison à sort().
La fonction de comparaison prend deux arguments, a et b.
- Si la fonction retourne un nombre négatif,
asera avantb. - Si la fonction retourne un nombre positif,
bsera avanta. - Si la fonction retourne 0, l'ordre des éléments ne change pas.
Pour trier des nombres en ordre croissant, on utilise (a, b) => a - b. Si a est inférieur à b, le résultat est négatif, et a vient avant b.
Pour trier en ordre décroissant, on utilise (a, b) => b - a. Si b est inférieur à a, le résultat est positif, et b vient avant a.
Autres méthodes (moins fréquentes pour des tableaux numériques simples, mais utiles) :
-
Méthode
localeCompare()pour des chaînes avec des nombres :// Non recommandé pour des nombres purs, mais peut être utilisé // si les nombres sont représentés sous forme de chaînes et qu'il faut prendre en compte la localisation. const stringNumbers = ["10", "2", "1"]; stringNumbers.sort((a, b) => a.localeCompare(b, undefined, { numeric: true })); // Trie comme [ "1", "2", "10" ] -
Créer une copie du tableau avant de trier :
// Si vous souhaitez conserver le tableau d'origine const originalNumbers = [4, 2, 5, 1, 3]; const sortedNumbers = [...originalNumbers].sort((a, b) => a - b); // ou // const sortedNumbers = originalNumbers.slice().sort((a, b) => a - b);