Si vous êtes en JavaScript depuis un certain temps, vous devez savoir que le tri de fonction de tri de table est une méthode dans le prototype de tableau, à savoir l'array.prototype.sort (), le tri (compareFonction), où comparefunction est une fonction de comparaison. Jetons un coup d'œil à une description de Mozilla MDN:
Si la fonction de comparaison n'est pas fournie, les éléments sont triés en les convertissant en chaînes et en comparant les chaînes dans l'ordre lexicographique ("dictionnaire" ou "annuaire téléphonique", non numérique). Par exemple, "80" vient avant "9" dans l'ordre lexicographique, mais dans un tri numérique, 9 est avant 80.
Voici quelques exemples simples:
La copie de code est la suivante:
// Sortie [1, 2, 3]
console.log ([3, 2, 1] .Sort ());
// Output ["A", "B", "C"]
console.log (["C", "B", "A"]. Soi ());
// sortie [1, 2, "a", "b"]
console.log (["b", 2, "a", 1] .sort ());
Comme on peut le voir à partir de l'exemple ci-dessus, la valeur par défaut est triée dans l'ordre alphabétique du dictionnaire.
Heureusement, Sort accepte une fonction de comparaison personnalisée, comme le montre l'exemple suivant:
La copie de code est la suivante:
fonction comparefunction (a, b) {
if (a> b) {
retour -1;
} else if (a <b) {
retour 1;
}autre {
retour 0;
}
}
// Sortie ["Zuojj", "Benjamin", "1"]
Console.log (["Benjamin", "1", "Zuojj"]. Sort (compareFunction));
Après le tri, nous avons une autre question: comment contrôler l'ordre ascendant et descendant?
La copie de code est la suivante:
fonction compareFunction (drapeau) {
drapeau = drapeau? Flag: "ASC";
Fonction de retour (a, b) {
if (a> b) {
Retour Flag === "DESC"? -1: 1;
} else if (a <b) {
Retour Flag === "DESC"? 1: -1;
}autre {
retour 0;
}
};
}
// Sortie ["1", "Benjamin", "Zuojj"]
console.log (["Benjamin", "1", "Zuojj"]. Sort (compareFunction ()));
// Sortie ["Zuojj", "Benjamin", "1"]
Console.log (["Benjamin", "1", "Zuojj"]. Sort (compareFunction ("desc")));
Les règles de tri pour la fonction de comparaison sont les suivantes:
1. Si il renvoie un nombre négatif, A sera trié à un indice inférieur dans le tableau.
2.Si il renvoie un nombre positif, A sera trié à un index plus élevé.
3.et s'il revient 0, aucun tri n'est nécessaire.
Jetons un coup d'œil à un passage extrait de Mozilla MDN:
Le comportement de la méthode de tri a changé entre JavaScript 1.1 et JavaScript 1.2. Pour expliquer cette description, regardons un exemple:
Dans JavaScript 1.1, sur certaines plateformes, la méthode de tri ne fonctionne pas. Cette méthode fonctionne sur toutes les plateformes pour JavaScript 1.2.
Dans JavaScript 1.2, cette méthode ne convertit plus les éléments non définis en null; Au lieu de cela, cela les trie jusqu'au haut du tableau. Veuillez cliquer ici pour plus de détails.
La copie de code est la suivante:
var arr = [];
arr [0] = "ant";
arr [5] = "Zebra";
// Sorties ["Ant", 5: "Zebra"]
console.log (arr);
// Sortie 6
console.log (arr.length);
// Sortie "Ant ****** Zebra"
console.log (arr.join ("*"));
//Trier
var sortarr = arr.sort ();
// sort ["Ant", "Zebra"]
Console.log (SORTARR);
// Sortie 6
Console.log (SORTARR.LENGTH);
// Sortie "Ant * Zebra ****"
console.log (SORTARR.JOIN ("*"));
J'espère que cet article vous sera utile d'apprendre et de comprendre la méthode SORT (). J'espère que vous critiquerez et corrigerez tous les aspects inappropriés de l'article.
Lien de référence: https://developer.mozilla.org/zh-cn/docs/web/javascript/reference/global_objects/array/sort