Maison > interface Web > js tutoriel > Pourquoi la fonction `sort()` de JavaScript produit-elle des résultats inattendus lors du tri des nombres, et comment cela peut-il être corrigé ?

Pourquoi la fonction `sort()` de JavaScript produit-elle des résultats inattendus lors du tri des nombres, et comment cela peut-il être corrigé ?

Mary-Kate Olsen
Libérer: 2024-12-27 04:29:10
original
900 Les gens l'ont consulté

Why Does JavaScript's `sort()` Function Produce Unexpected Results When Sorting Numbers, and How Can This Be Fixed?

Tri d'un tableau d'entiers : comprendre le tri numérique

Tri d'un tableau d'entiers peut sembler simple, mais certaines bizarreries peuvent survenir, conduisant à des résultats inattendus. Considérez le code suivant :


numArray = numArray.sort();<br>


Intuitivement, on pourrait s'attendre à ce que ce code trie le tableau par ordre croissant : [99, 104, 140000]. Cependant, le résultat est inattendu : [104, 140000, 99]. En effet, le comportement par défaut de la fonction de tri consiste à traiter les éléments comme des chaînes et à les trier par ordre alphabétique.

Pour résoudre ce problème, JavaScript fournit un mécanisme permettant de personnaliser le processus de tri. En introduisant une nouvelle fonction de comparaison, nous pouvons spécifier comment les éléments doivent être triés.

Dans le cas d'entiers, nous pouvons définir une fonction de tri numérique :


 renvoie un - b;<br>});<br>


Cette fonction de tri soustrait simplement un entier d'un autre, ce qui donne une valeur positive ou négative. Les valeurs positives indiquent que le premier argument (a) est supérieur au second (b), et vice versa.

En passant cette fonction à la méthode de tri, nous pouvons trier efficacement le tableau numériquement :




Maintenant, le tableau est trié correctement par ordre croissant en fonction des valeurs entières de ses éléments. En tirant parti de la fonction de comparaison personnalisée, nous pouvons contrôler la manière dont le tableau est trié et obtenir le résultat souhaité.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal