前の記事では、JavaScriptソートアレイソートメソッドと自己実装ソートメソッドを紹介し、独自の方法を使用して数値配列のソートを実装しました。
もちろん、実際に使用すると、ソートメソッドを使用する方が便利です。ただし、以前のブログ投稿では、数値並べ替えのみを実装しましたが、SROTメソッドはデフォルトで文字を並べ替えることができます!私のコードは数字のみを並べ替えることができますが、それでも弱く見えます。
したがって、文字や中国語を並べ替えることができるソート方法を追加する必要があります。
コードを実装します
$(function(){var arr = ["jack"、 "book"、 "fung"、76、 "love"、 "mark"、 "china"、 "china"、 "phone"、 "andy lau"]; console.log( 'original array'); console.log( 'arr); console.log(' large '); console.log(' arrsortmintomax(arr)); console.log( '' for 'for' for 'for method for' for for for for for for for for for light of to small ') ""; for(var i = 0; i <arr.length; i ++){if(typeof(arr [i])== "string"){if(arr [i] .charcodeat()<minnum){minnum = arr [i] .charcodeat(); minvul = arr [i]; index = i;} x <minnum arr [i]; minvul = arr [i] index = i;}}}; return {"minnum":minvul、 "index":index ":index};} function arrsortmintomax(arrnew = []; var arrold = arr.concat(); {arrnew.push(arrminnum(arrold).minnum); arrold.splice(arrminnum(arrold).index、1)}; return(arrnew);} function arrmaxnum(arr){var maxnum = -infinity、index = -1、maxvul = " (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]; maxnum = arr [i]; i;}}}; return {"maxnum":maxvul、 "index":index};} function arrsortmaxtomin(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);};};};実行中のスクリーンショットは次のとおりです。
ソート原理
数字の場合、数字と直接比較されます。
文字列の場合、sortingのためにcharcodeat()を使用してユニコードエンコードに変換されます。
Unicodeは0〜65535の間の整数です
その他の指示
通常のソートロジックによれば、それは次のとおりです。数字はすべての文字よりも小さく、文字はすべての中国人よりも小さく、中国人は最初のキャラクターのピニインの最初の文字に従ってソートする必要があります。
私のコードは、文字がすべての中国人よりも小さいことを除いて、実装されていません。
また、ロジックを実現し、漢字を数字で見つけ、数字を配列と比較し、文字と文字を比較し、中国語と中国語を比較してから、スプライスアレイも必要です。
中国語の最初のキャラクターのイニシャルを取得するのはもう少し面倒かもしれません。
漢字は直接比較できます。
上の写真に示すように、Zhang Feiがボスになるのは理にかなっています。 JavaScriptは最終的にZhang Feiを千年後に有名にしました。彼は当時の上司だったはずです! 〜