Maison > interface Web > js tutoriel > Comment trier correctement les chaînes en JavaScript ?

Comment trier correctement les chaînes en JavaScript ?

Susan Sarandon
Libérer: 2024-11-24 18:40:25
original
387 Les gens l'ont consulté

How to Correctly Sort Strings in JavaScript?

Tri des chaînes en JavaScript

De nombreux développeurs JavaScript rencontrent des difficultés lorsqu'ils tentent de trier une liste d'objets en fonction d'un attribut de chaîne en raison de l'unique comportements des chaînes en JavaScript. Cet article explore les solutions à ce problème courant.

Problème :

Comme vous l'avez découvert, soustraire simplement une chaîne d'une autre, comme dans a.attr - b.attr , ne trie pas avec précision les chaînes en JavaScript. En effet, JavaScript traite les chaînes comme des caractères Unicode et les opérations arithmétiques de base ne conviennent pas pour les comparer.

Solution :

Pour trier efficacement les chaînes, vous pouvez utiliser le Méthode String.prototype.localeCompare. Cette méthode fournit une comparaison des chaînes en fonction des paramètres régionaux, ce qui la rend plus adaptée au tri. Voici une version mise à jour de votre code en utilisant localeCompare :

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

Notez que nous avons ajouté une concaténation de chaînes vides ('' a.attr) pour garantir que les deux valeurs sont converties en chaînes. Ceci afin d'éviter des exceptions potentielles.

Alternatives :

Si vous préférez une approche plus succincte et n'avez pas besoin de prendre en compte la sensibilité aux paramètres régionaux, vous pouvez utiliser ce qui suit extrait de code :

if (item1.attr < item2.attr)
    return -1;
if ( item1.attr > item2.attr)
    return 1;
return 0;
Copier après la connexion

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