Maison > interface Web > js tutoriel > Tri sophistiqué en javascript

Tri sophistiqué en javascript

Jennifer Aniston
Libérer: 2025-03-08 00:40:09
original
737 Les gens l'ont consulté

Sophisticated Sorting in 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:

  • La fonction 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.
  • La fonction
  • 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
  • JavaScript prend en charge le tri multidimensionnel et le tri multi-conditions. Dans le tri multidimensionnel, comparez les valeurs internes du tableau;
  • JavaScript peut également trier les tableaux d'objets. À mesure que les comparaisons deviennent plus complexes, il est recommandé d'utiliser des réseaux littéraux d'objet au lieu des tableaux multidimensionnels, car cela facilite la compréhension des fonctions de comparaison.

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"]
Copier après la connexion
Copier après la connexion

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:

  1. Si la fonction renvoie moins de zéro , a est avant b
  2. Si la fonction renvoie supérieur à zéro , alors b est avant un
  3. Si la fonction renvoie zéro , les positions relatives de a et b restent inchangées
La spécification

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]
Copier après la connexion
Copier après la connexion

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"]
Copier après la connexion
Copier après la connexion

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]
Copier après la connexion
Copier après la connexion

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!

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