Dans l'article précédent, j'ai introduit la méthode de tri du tableau de tri JavaScript et la méthode de tri auto-implémentée, et j'ai utilisé ma propre méthode pour implémenter le tri des tableaux numériques.
Bien sûr, dans une utilisation réelle, il est plus pratique pour moi d'utiliser la méthode de tri. Cependant, dans mon article de blog précédent, je n'ai implémenté que le tri numérique, tandis que la méthode SROT peut trier les lettres par défaut! Mon code ne peut que trier les numéros, et il semble toujours faible.
Donc, je dois ajouter une méthode de tri qui peut trier les lettres ou même le chinois.
Implémenter le code
$ (function () {var arr = ["Jack", "Book", "Fung", 76, "Love", "Mark", "China", "China", "Phone", "Andy Lau"]; Console.log ('Array original); console.log (' arr); large');console.log('arrSortMinToMax(arr));console.log('for method sorted from large to small');console.log('arrSortMaxToMin(arr));console.log('original array');console.log('arr);});function arrMinNum(arr){var minNum = Infinity, index = -1,minVul = ""; for (var i = 0; i <arr.length; i ++) {if (typeof (arr [i]) == "string") {if (arr [i] .Charcodeat () <minnum) {minNum = arr [i] .Carcodeat (); minvul = arr [i]; index = i;}} else {if (arr [i] arr [i]; minvul = arr [i] index = i;}}}; return {"Minnum": minvul, "index": index};} fonction arrsortmintoMax (arr) {var arrnew = []; var arold = arr.concat (); for (var i = 0; i <arr.Length; i ++) {Arrnew.push (Arrminnum (Arrold) .minnum); Arrold.splice (Arrminnum (Arrold) .Index, 1)}; return (Arrnew);} fonction ArrMaxnum (arr) {var maxnum = -infinity, index = -1, maxvul = ""; pour (var i = 0; i <r.Length; (typeof (arr [i]) == "string") {if (arr [i] .Charcodeat ()> maxNum) {maxnum = arr [i] .Charcodeat (); maxvul = arr [i]; index = i;}} else {if (arr [i]> maxnum) {maxnum = arr [i]; maxvul = arr [i] i;}}}; return {"maxnum": maxvul, "index": index};} fonction arrsortMextomin (arr) {var arrnew = []; var arrold = arr.slice (0); for (var i = 0; i <arr.length; i ++) {Arrnew.push (ArrMaxnum (Arrold) .maxnum); Arrold.splice (ArrMaxnum (Arrold) .Index, 1);}; return (Arrnew);}La capture d'écran en cours est la suivante:
Principe de tri
S'il s'agit d'un nombre, il est directement comparé au nombre.
S'il s'agit d'une chaîne, il est converti en codage Unicode à l'aide de charcodeat () pour le tri.
Unicode est un entier entre 0 et 65535
Autres instructions
Selon la logique de tri normale, ce doit être: les nombres sont plus petits que toutes les lettres, les lettres sont plus petites que tous les chinois, et le chinois devrait être trié en fonction de la première lettre du pinyin du premier caractère.
Mon code n'a pas été mis en œuvre, sauf que les lettres sont plus petites que tous les chinois.
La logique doit également être réalisée, découvrez les caractères chinois en chiffres, comparez les numéros avec les tableaux, comparez les lettres avec des lettres, comparez le chinois avec le chinois, puis épissez les tableaux
Il peut être un peu plus difficile d'obtenir les initiales de la première lettre en chinois.
Les caractères chinois peuvent être comparés directement.
Comme indiqué dans l'image ci-dessus, il est logique que Zhang Fei soit le patron. Javascript a finalement rendu Zhang Fei célèbre mille ans plus tard. Il aurait dû être le patron à l'époque! ~