Maison > interface Web > js tutoriel > Comment trier correctement les chaînes en JavaScript à l'aide de « localeCompare » ?

Comment trier correctement les chaînes en JavaScript à l'aide de « localeCompare » ?

Mary-Kate Olsen
Libérer: 2024-11-26 19:37:14
original
218 Les gens l'ont consulté

How to Properly Sort Strings in JavaScript using `localeCompare`?

Comment trier les chaînes en JavaScript à l'aide de localeCompare

Lorsque vous essayez de trier une liste d'objets en fonction d'un attribut de chaîne en utilisant l'approche traditionnelle de list.sort(function (a, b) { return a.attr - b.attr }), vous pouvez rencontrer des résultats inattendus. En effet, l'opérateur de soustraction (-) ne trie pas automatiquement les chaînes en JavaScript.

Pour trier efficacement les chaînes dans ce scénario, utilisez la méthode String.prototype.localeCompare. Cette méthode compare deux chaînes et renvoie un nombre négatif si la première chaîne est triée avant la deuxième chaîne, un nombre positif si la deuxième chaîne est triée avant la première chaîne, ou zéro si les deux chaînes sont égales.

Voici comment adapter votre code à l'aide de localeCompare :

list.sort(function (a, b) {
  return ('' + a.attr).localeCompare(b.attr);
});
Copier après la connexion

En convertissant explicitement a.attr en chaîne, nous évitons les exceptions potentielles. localeCompare offre un support depuis Internet Explorer 6 et Firefox 1.

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