ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript プログラムで localeCompare() を使用して配列の並べ替えと漢字の並べ替えを実装する
テーブルのソートに関しては、配列のソートがテーブルのソートの基礎であるため、最初に話さなければなりません。 JavaScript は、テーブルの並べ替え用に配列の sort() メソッドを提供します。デフォルトでは、このメソッドは Array 内の配列を ASCII コードの順序で配置します。また、JavaScript は配列の reverse() メソッドも提供します。
例を見てみましょう:
1 function sortArray(){
2 var arrayTest = ["z",5,2,"a",32,3];
3 arrayTest.sort();
4 alert(arrayTest.toString()); //出力:2,3,32,5,a,z
5 arrayTest.reverse();
6 alter(arrayTest.toString()); z,a,5,32 ,3,2
7 sortArray();実際、sort() メソッドでは関数型のパラメーターも使用でき、比較関数を呼び出すことができます。比較関数が 2 つのパラメーターを受け取ることができる場合、関数の戻り値の意味は次のとおりです:
-1:最初のパラメータが 2 番目のパラメータより小さい
1: 最初のパラメータが 2 番目のパラメータより大きい
例を見てください:
& 1/**
2 * 比較関数
3 * @param {Object} param1 比較するパラメータ 1
4 * @param {Object} param2 比較するパラメータ 2
5 &g t; param2 は 1 を返します
6 *Param1 == Param2 が 0 を返す場合
7*Param1 と LT が -1 を返す場合
8*/
9 Function Comparefunc (Param1, Param2) {
10 // 両方のパラメーターが文字列型の場合
11 if (typeof param1 == "string" && typeof param2 == " string") {
12string ")==" number "&& typeof param2 ==" string "){
16return -1;
17param2 ==" number "){
20return 1;
21return if(param1&gt ; param2) 1 を返す; Ar25 if (param1 == Param2) 0 を返す;
26 IF (Param1 & LT; Param2) を返す。
この時点で、 localeCompare() メソッドの使用法を説明する必要があります。このメソッドには、比較する文字列という 1 つのパラメーターしかありません。具体的な命令は次のとおりです:
1. String オブジェクトがパラメーター内の文字列の前にアルファベット順に配置されている場合、負の数が返されます
2. String オブジェクトがパラメーター内の文字列の後にアルファベット順に配置されている場合、正の数値が返されます
3. 文字列の場合、オブジェクトはパラメーター内の文字列と等しいため、0 を返します
さらに、 localeCompare() メソッドには独自の機能があり、そのメソッド シグネチャ ロケール (local、local) に反映できます。 )、つまり、その実装は地域の特性に基づいており、英語システムの場合は文字列の昇順になる可能性があります。中国語の場合、その実装はピンインに従う場合があります。最初の手紙。はは、プログラムに漢字を入れてもソートは狂わないということですね。
以下の手順をご参照ください:
1 var testArray = ["Zheng", "zhou", "xin", "source", "xin", "information", "technology", "skills", "shares", "shares", "you", "限定"、"パブリック"、"会社" ];
2 document.write(testArray.sort(
3 function CompareFunction(param1,param2){
4 return param1.localeCompare(param2); //出力: コピー、パブリック,株,テクノロジー,テクニカル,情報,限界,信仰,信仰,ソース,鄭州
5 }
6 ));