Maison >interface Web >js tutoriel >Comment trier correctement les chaînes en 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); });
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;
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!