JSではsortを使ってlocaleCompareと中国語で並べ替えた例を実現します.
3203 ワード
表の並べ替えといえば、まず言うべきは配列の並べ替えです.配列の並び替えは表の並べ替えの基礎です.
JavaScriptは配列にsort()の方法を提供して表の順序付けに用いて、デフォルトの場合、この方法はArayの配列をASCIIコードの順序に従って配列させて、JavaScriptはまた配列の順序を逆転する方法reverse()を提供しています.
例を見てください
実は、sort()方法はまた、関数タイプのパラメータを持つことができます.比較関数と呼ぶことができます.この比較関数はまた、2つのパラメータを受け取ることができます.以下の関数は値を返す意味があります.
具体的な説明は以下の通りです
1、Stringオブジェクトがアルファベット順にパラメータの文字列の前に並べば、負の値2を返します.Stringオブジェクトが文字順にパラメータの文字列に並べば、正数3を返します.Stringオブジェクトがパラメータの文字列に等しい場合、0を返します.
この他にも、local Compare()の方法は独特なところがあります.この独特なところはその方法でlocale(現場、現地)にサインして表現できます.つまり彼の実現は地域の特性によって行われます.英語システムでは文字列の昇順で実現されるかもしれません.中国語では、彼の実現はアルファベットのピンインに従っています.
へへへ、これはつまり私達がプログラムの中で漢字に関連しますとしても、私達の順序は間違いに帰りません.以下の手順を参照してください.
JavaScriptは配列にsort()の方法を提供して表の順序付けに用いて、デフォルトの場合、この方法はArayの配列をASCIIコードの順序に従って配列させて、JavaScriptはまた配列の順序を逆転する方法reverse()を提供しています.
例を見てください
function sortArray(){
var arrayTest = ["z",5,2,"a",32,3];
arrayTest.sort();
alert(arrayTest.toString()); //output:2,3,32,5,a,z
arrayTest.reverse();
alert(arrayTest.toString()); //output:z,a,5,32,3,2
}
sortArray();
ほほほ、5は32よりもっと大きくて、明らかにこれは私達の欲しい結果ではありません.さっきすでにsort()の方法はASCIIコードの順序によって並べられたと言いました.実は、sort()方法はまた、関数タイプのパラメータを持つことができます.比較関数と呼ぶことができます.この比較関数はまた、2つのパラメータを受け取ることができます.以下の関数は値を返す意味があります.
-1:
0:
1:
/**
*
* @param {Object} param1 1
* @param {Object} param2 2
* @return {Number} param1 > param2 1
* param1 == param2 0
* param1 < param2 -1
*/
function compareFunc(param1,param2){
//
if(typeof param1 == "string" && typeof param2 == "string"){
return param1.localeCompare(param2);
}
// 1 , 2
if(typeof param1 == "number" && typeof param2 == "string"){
return -1;
}
// 1 , 2
if(typeof param1 == "string" && typeof param2 == "number"){
return 1;
}
//
if(typeof param1 == "number" && typeof param2 == "number"){
if(param1 > param2) return 1;
if(param1 == param2) return 0;
if(param1 < param2) return -1;
}
}
私たちはarrayTest.sortを実行すると、正しい結果を得ました.ここでは、文字列を並べ替える方法であり、一つのパラメータだけが比較される文字列の使い方を説明しなければなりません.具体的な説明は以下の通りです
1、Stringオブジェクトがアルファベット順にパラメータの文字列の前に並べば、負の値2を返します.Stringオブジェクトが文字順にパラメータの文字列に並べば、正数3を返します.Stringオブジェクトがパラメータの文字列に等しい場合、0を返します.
この他にも、local Compare()の方法は独特なところがあります.この独特なところはその方法でlocale(現場、現地)にサインして表現できます.つまり彼の実現は地域の特性によって行われます.英語システムでは文字列の昇順で実現されるかもしれません.中国語では、彼の実現はアルファベットのピンインに従っています.
へへへ、これはつまり私達がプログラムの中で漢字に関連しますとしても、私達の順序は間違いに帰りません.以下の手順を参照してください.
var testArray = [" "," "," "," "];
document.write(testArray.sort(
function compareFunction(param1,param2){
return param1.localeCompare(param2); //output: , , ,
}
));