JSでの配列の並べ替え方法

高洛峰
リリース: 2016-12-07 10:34:55
オリジナル
1349 人が閲覧しました

1. 配列には、並べ替えに直接使用できるメソッドがすでに 2 つあります: reverse() と sort()。

reverse() メソッドと sort() メソッドの戻り値は、ソートされた配列です。 reverse() メソッドは配列項目の順序を逆にします:

var values=[1,2,3,4,5];
values.reverse();
alert(values); //5,4,3,2,1
ログイン後にコピー

デフォルトでは、sort() メソッドは配列を昇順にソートし、sort() メソッドは toString() 変換メソッドを呼び出します。次に、文字列を比較して並べ替え方法を決定します。配列内の各項目が数値であっても、sort() メソッドは文字列を比較します。

var values = [0,1,5,10,15];
values.sort();
alert(values); //0,1,10,15,5
ログイン後にコピー

したがって、sort() メソッドはパラメータとして比較関数を受け取ることができます。

function compare(value1,value2){
if (value1 < value2){
return -1;
}else if (value1 > value2){
return 1;
}else{
return 0;
}
}
ログイン後にコピー

この比較関数はほとんどのデータ型に適用でき、パラメータとして sort() メソッドに渡すだけです:

var values = [0,1,3,7,9,15];
values.sort(compare);
alert(values); //0,1,3,7,9,15
ログイン後にコピー

降順ソートも比較関数を通じて生成できます。関数の戻り値を交換するだけです:

function compare (value1, value2){
if (value1<value2){
return 1;
}else if {
return -1;
}else{
return 0;
}
}
ログイン後にコピー

sort() 関数のソート条件は次のとおりです:

パラメーターが 0 より大きい、arr 交換位置の 2 つの隣接する要素

パラメーターが 0 未満、2 つの隣接する要素。 arr の要素は位置を交換しません。

パラメーターは 0 に等しく、arr の 2 つの隣接する要素のサイズは等しいため、比較カスタム関数は数値を返す必要があります。

2. 数値型の場合、または valueOf() メソッドは数値型のオブジェクト型を返します。


より単純な比較関数を使用できます。この関数には、2 番目の値から最初の値を引いた値のみが必要です。

りー

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