JavaScript学習メモ(3) 配列ソートと漢字ソートにおけるlocaleCompare()メソッドの使い方

黄舟
リリース: 2016-12-19 17:32:37
オリジナル
1690 人が閲覧しました

テーブルのソートに関しては、配列のソートがテーブルのソートの基礎であるため、最初に話さなければなりません。 JavaScript は、テーブルを並べ替えるための配列の sort() メソッドを提供します。デフォルトでは、このメソッドは Array 内の配列を ASCII コードの順序で配置します。また、JavaScript は配列の reverse() メソッドも提供します。
例を見てみましょう:
1 function sortArray(){
2 var arrayTest = ["z",5,2,"a",32,3];
3 arrayTest.sort();
4 alter( arrayTest.to String ()); //出力:2,3,32,5,a,z
5 arrayTest.reverse();
6 warning(arrayTest.toString()); 5,32, 3,2
7 }
8 sortArray(); ははは、5 は 32 より大きいです。明らかに、これは私たちが望む結果ではありません。先ほど述べたように、sort() メソッドは ASCII コードの順序でソートします。 。実際、sort() メソッドでは関数型のパラメーターも使用でき、比較関数を呼び出すことができます。比較関数が 2 つのパラメーターを受け取ることができる場合、関数の戻り値の意味は次のとおりです:
-1:最初のパラメータが 2 番目のパラメータより小さい
0: 最初のパラメータが 2 番目のパラメータと等しい
1: 最初のパラメータが 2 番目のパラメータより大きい
例を見てください:
1 /**数 2 * 比較関数 * 3 * @param {オブジェクト} param1 パラメータ 1
4 * @param {オブジェクト} Param2 パラメータ 2
5 *Rturn {数値} Param1 と GT が 1 を返す場合
6 *Param1 == Param2 の場合0 を返します
7 *Param1 と LT が -1 を返す場合
8*/
9 function CompareFunc(param1 , Param2) {m10 // 両方のパラメータが文字列型の場合
11 IF (Typeof Param1 == "String" && Typeof Param2 == "String") {
12 RETURN PARAM1.LOCALECOMPARE (Param2); }
14//パラメーター1が数字の場合、パラメーター2は文字列
15if(typeof param1 == "number" && typeof param2 == ""){
16
18//パラメーター1が文字列の場合、パラメーター2は、デジタルf 23の数字
19パラメーター1(typeof param1 == "number" && typeof param2 == "number"){
24if(param1> param2)return 1; == Param2) 0 を返す;
26 If (if (if param1 < param2) return -1;
27}
28} arrayTest.sort (comparefunc) を実行すると、正しい結果が得られます。
この時点で、 localeCompare() メソッドの使用法を説明する必要があります。このメソッドには、比較する文字列という 1 つのパラメーターしかありません。具体的な命令は次のとおりです:
1. String オブジェクトがパラメーター内の文字列の前にアルファベット順に配置されている場合、負の数が返されます
2. String オブジェクトがパラメーター内の文字列の後にアルファベット順に配置されている場合、正の数値が返されます
3. 文字列の場合、オブジェクトはパラメーター内の文字列と等しいため、0 を返します
さらに、 localeCompare() メソッドには、そのメソッド シグネチャ ロケール (local、local) に反映できる別のユニークな機能があります。 )、つまり、その実装は地域の特性に基づいており、英語システムの場合は文字列の昇順になる可能性があります。中国語の場合、その実装はピンインに従う場合があります。最初の手紙。はは、プログラムに漢字を入れてもソートは狂わないということですね。
次の手順を参照してください:
1 var testArray = ["Zheng", "State", "Xin", "Source", "Xin", "Information", "Technology", "Technology", "Share", " Share" , "Yes", "Limited", "Gong", "Division"];
2 Document.write (TestArray.sort 出力: シェア、会社、株式、テクノロジー、テクノロジー、会社、情報、制限、レター、レター、出典、鄭州
5 ));

上記は配列のソートと localeCompare() メソッドです。その他の関連コンテンツについては、PHP の中国語 Web サイト (www.php.cn) に注目してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!