ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript 配列ソート関数_JavaScript スキル

JavaScript 配列ソート関数_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 18:48:04849ブラウズ

arrayobj.sort(sortfunction);
パラメータ: sortFunction
オプション。要素の順序を決定するために使用される関数の名前です。このパラメータを省略した場合、要素は ASCII 文字の昇順で並べ替えられます。
sort メソッドは Array オブジェクトを適切に並べ替えます。実行中に新しい Array オブジェクトは作成されません。
sortfunction 引数に関数が指定されている場合、関数は次の値のいずれかを返す必要があります:
渡された最初の引数が 2 番目の引数より小さい場合は負の値。
両方の引数が等しい場合はゼロ。
最初のパラメータが 2 番目のパラメータより大きい場合は正の値。
上記の方法は一次元のソートには非常に便利ですが、SQL ステートメントの ORDER BY のような複数のキー値のソートを行うにはどうすればよいでしょうか?
多次元配列のマルチキー値の並べ替えはより複雑にする必要がありますが、それを解決するためにループを使用する必要はありません。実際の解決策は同じです。
数値:
次の例は、SQL ステートメントの ORDER BY col5、col9、col7 のように、数値の多次元配列を列 5、列 9、列 3 の順に並べ替えます。数値の場合は、2 つの項目を直接減算し、その結果を戻り値として使用できます。

コードをコピーします コードは次のとおりです。




文字: 文字が
の場合、数値のように sortFunction 内の項目を直接減算することはできません。
str1 を呼び出す必要があります。 localeCompare(str2) メソッドを使用して、戻り値を満たすように比較します。以下は、多次元配列の列 1 と列 2 をソートする場合です。



コードをコピー

コードは次のとおりです。 function sortFunction(array) ...{ return array.sort( function(x, y) .​​..{ return (x[0]==y[0])?(x.localeCompare(y)):(x[0]. localeCompare(y [0])) });
}


したがって、arrayObject.sort(sortFunction) のソート関数は依然として非常に強力であり、最終的にSQL ステートメントの同じ ORDER BY 関数。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。