No artigo anterior, introduzi o método de classificação de classificação JavaScript e o método de classificação auto-implementado para você e usei meu próprio método para implementar a classificação de matrizes numéricas.
Obviamente, no uso real, é mais conveniente para mim usar o método de classificação. No entanto, na minha postagem anterior, implementei apenas a classificação numérica, enquanto o método SROT pode classificar letras por padrão! Meu código só pode classificar os números e ainda parece fraco.
Então, eu tenho que adicionar um método de classificação que pode classificar cartas ou até chinês.
Implementar código
$ (function () {var arr = ["jack", "livro", "fung", 76, "amor", "mark", "china", "china", "telefone", "Andy lau"]; console.log ('Array original'); console.log ('arr); console.log (' para métodos pequenos a pequenos grande '); console.log (' ArrSortMintomax (arr)); console.log ('para método classificado de grande a pequeno'); console.log ('ArrSortmaxtomin (Arr)); console.log (' Array original '); console.rlog (' ARR); min); função; ""; para (var i = 0; i <arn.length; i ++) {if (typeof (arr [i]) == "string") {if (arr [i] .charcodeat () <minnum) {minnum = arr [i] .charcodeat (); minvul = arr [i]; index = i;}; arr [i]; minvul = arr [i] index = i;}}}; return {"minnum": minvul, "index": index};} função arrsortMintomax (arr) {varnhew = []; var Arrold = arr.Concat (); {arrNew.push (arrminnum (Arrold) .Minnum); arrold.splice (Arrminnum (Arrold) .Index, 1)}; return (ArrNew);} função Arrmaxnum (Arr) {var maxnum = -infinity, Index = -1, MAXV = "; (typeof (arr [i]) == "string") {if (arr [i] .charcodeat ()> maxnum) {maxnum = arr [i] .charcodeat (); maxvul = arr [i]; index = i;}} {if (acr [i]> maxnum) {maxnum =; i;}}}; return {"maxnum": maxvul, "index": index};} função arsortmaxtomin (arr) {var ArrNew = []; var arrold = arr.slice (0); {arrNew.push (Arrmaxnum (Arrold) .Maxnum); Arrold.splice (Arrmaxnum (Arrold) .Index, 1);}; return (ArrNew);}A captura de tela em execução é a seguinte:
Princípio de classificação
Se for um número, ele é comparado diretamente com o número.
Se for uma string, ela é convertida em codificação de unicode usando o Charcodeat () para classificação.
Unicode é um número inteiro entre 0 - 65535
Outras instruções
De acordo com a lógica normal de classificação, deve ser: os números são menores do que todas as letras, as letras são menores que todos os chineses e os chineses devem ser classificados de acordo com a primeira letra do Pinyin do primeiro caractere.
Meu código não foi implementado, exceto que as cartas são menores que todos os chineses.
A lógica também deve ser realizada, descobrir os caracteres chineses em números, comparar números com matrizes, comparar letras com letras, comparar chinês com chinês e depois emplicar matrizes
Pode ser um pouco mais problemático obter as iniciais da primeira letra em chinês.
Os caracteres chineses podem ser comparados diretamente.
Como mostrado na figura acima, faz sentido para Zhang Fei ser o chefe. JavaScript finalmente tornou Zhang Fei famoso mil anos depois. Ele deveria ter sido o chefe naquela época! ~