Tri d'un tableau d'entiers : au-delà de l'ordre alphabétique
En essayant de récupérer les valeurs les plus élevées et les plus basses d'un tableau d'entiers, vous pouvez ont rencontré un comportement inattendu : la fonction de tri semble trier les éléments sous forme de chaînes. Pour surmonter ce problème, nous avons besoin d'un mécanisme de tri qui prend en compte les valeurs entières.
Comprendre le tri par défaut
Par défaut, la méthode de tri en JavaScript effectue un tri alphabétique. Cela signifie que les éléments sont comparés sous forme de chaînes et classés par ordre lexicographique. Dans le cas d'entiers, cela peut conduire à des résultats incorrects, car la comparaison est basée sur la représentation sous forme de chaîne des nombres plutôt que sur leurs valeurs réelles.
Solution : fonction de tri numérique personnalisée
Pour remédier à cette limitation, nous pouvons définir une fonction de tri personnalisée qui se concentre sur la comparaison des valeurs entières des éléments du tableau. Voici un exemple simple :
var numArray = [140000, 104, 99]; numArray.sort(function(a, b) { return a - b; }); console.log(numArray);
La fonction de tri fournie (nommée sortNumber ou similaire) prend deux paramètres, a et b, représentant les deux éléments comparés. Pour trier le tableau par ordre croissant, nous soustrayons simplement a de b. Si le résultat est positif, a devrait venir après b ; si négatif, a doit précéder b.
Résultats
En utilisant la fonction de tri personnalisé, nous obtenons le résultat correct :
[99, 104, 140000]
Les éléments du tableau sont désormais triés par ordre numérique croissant selon leurs valeurs entières, comme prévu.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!