Maison >interface Web >js tutoriel >Tri sophistiqué en javascript
Le mécanisme de tri de JavaScript est simple et facile à utiliser, mais il contient des fonctions puissantes et flexibles. Les méthodes sort()
peuvent non seulement trier le tableau de manière alphabétique ou numérique, mais aussi arbitrairement trier en fonction de la logique conditionnelle personnalisée.
Points de base:
sort()
de JavaScript est un outil flexible qui organise des tableaux de diverses manières, y compris les permutations personnalisées définies sur la base de la logique conditionnelle. sort()
fonctionne en comparant deux valeurs (a et b) dans chaque opération. Si la fonction renvoie moins de zéro, A est avant B sort()
Comment fonctionne la fonction:
→ Si vous connaissez déjà les bases, vous pouvez ignorer cette section.
Si la méthode sort()
ne prend aucun paramètre, le tableau sera trié dans l'ordre du dictionnaire (ordre du dictionnaire, chaque valeur est traitée comme une chaîne):
var letters = ["R","O","F","L"]; letters.sort(); alert(letters); // 输出 ["F","L","O","R"]
Sinon, le paramètre de la méthode sort()
est une fonction de comparaison qui définit le comportement de tri en fonction de sa valeur de retour. La fonction de comparaison accepte elle-même deux paramètres, communément appelés A et B, qui représentent les deux valeurs par rapport à chaque opération. Alors:
définit ces règles de manière déroutante. La spécification JavaScript appelle la première condition de tri "Tri B à un index inférieur à un". Mais cela signifie en fait "Rank B inférieur dans un", qui est un index plus élevé , pas plus bas en termes d'index numériques. Il utilise le mot «index» d'une manière très déroutante; j'espère que ce qui précède exprime les conditions plus clairement.
Par conséquent, la façon habituelle d'utiliser les fonctions de comparaison consiste à effectuer et à renvoyer un calcul simple pour produire le résultat trié souhaité. Par exemple, si la fonction retourne (a - b), un type numérique sera produit:
var numbers = [8,5]; numbers.sort(function(a, b) { return a - b; }); alert(numbers); // 输出 [5,8]
Nous pouvons expliquer cela avec un exemple de valeur: puisque a = 8 et b = 5, alors (a - b) == 3; 3 est supérieur à zéro, donc B sera avant A, entraînant l'ordre [5,8].
Par conséquent, l'ordre numérique inverse peut être produit en inversant l'équation:
var letters = ["R","O","F","L"]; letters.sort(); alert(letters); // 输出 ["F","L","O","R"]
Nous pouvons également créer une fonction de comparaison pour générer le tri du dictionnaire en définissant trois comparaisons pour évaluer chaque paire de chaînes - dans le terme de calcul, "A" est inférieur à "B", afin que nous puissions comparer directement les chaînes et ensuite retourner l'une des trois valeurs triées:
var numbers = [8,5]; numbers.sort(function(a, b) { return a - b; }); alert(numbers); // 输出 [5,8]
Notez comment nous convertissons chaque chaîne en minuscules à l'avance, ce qui garantit que nous obtenons un type insensible à la caisse (si nous ne le faisons pas, les lettres supérieures et minuscules seront triées séparément). Nous attribuons également les résultats de ces opérations à de nouvelles variables, car certains navigateurs n'autorisent pas les paramètres de remplacement.
(Le contenu suivant est le même que le texte d'origine. La pièce en double est omise ici pour maintenir la cohérence avec le texte d'origine)
tri multidimensionnel Tri multi-conditions Commande de réseaux d'objets Instructions sur le tri stable
Résumé: N'oubliez pas, il n'y a rien de spécial dans le tri des fonctions de comparaison, c'est juste une fonction normale qui effectue des opérations et renvoie les résultats. Vous pouvez charger des données externes, créer des éléments de rendu de test ou effectuer un certain nombre d'opérations complexes. Tant que la fonction revient correctement - moins de zéro, supérieure à zéro ou zéro - il n'y a pas de limitation spécifique dans le processus de mise en œuvre!
Source de la vignette Image: [Soren]
FAQ sur le tri avancé JavaScript (la partie FAQ d'origine est omise, évitez la duplication)
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!