110 of 264 menu

sortメソッド

メソッド sort は、配列を辞書順にソートし、 変更された配列を返します。オプションのパラメータとして、 独自のソート用関数を指定できます。

構文

配列.sort([関数]);

配列をソートしてみましょう:

let arr = ['d', 'b', 'a', 'c']; console.log(arr.sort());

コードの実行結果:

['a', 'b', 'c', 'd']

数値の配列をソートしてみましょう:

let arr = [4, 1, 7, 2]; console.log(arr.sort());

コードの実行結果:

[1, 2, 4, 7]

配列に数値を追加してソートしてみましょう:

let arr = [1, 123, 2, 4, 111, 7]; console.log(arr.sort());

コードの実行結果から、 数値が昇順ではなく辞書順(レキシコグラフィックオーダー) で配置されていることがわかります。 つまり、数値は文字列として比較され、 各文字のコードが隣の文字のコードより大きいかどうかが 比較されます。結果は以下の通りです:

[1, 111, 123, 2, 4, 7]

次に、関数を使用して配列をソートしてみましょう。 関数内に条件を記述します - 最初のパラメータが2番目のパラメータより大きい場合、 それを入れ替えます(そのために return で任意の正の数を返します)。 逆の場合は入れ替えは不要で、 0 または任意の負の数を指定します:

let arr = [1, 123, 2, 4, 111, 7]; arr.sort(function(a, b) { if (a > b) { return 1; } else { return -1; } }); console.log(arr);

コードの実行結果:

[1, 2, 4, 7, 111, 123]

前の例の関数のコードを簡略化してみましょう:

let arr = [1, 123, 2, 4, 111, 7]; arr.sort(function(a, b) { return a - b; }); console.log(arr);

コードの実行結果:

[1, 2, 4, 7, 111, 123]

次に、関数を使用して配列を降順でソートしてみましょう:

let arr = [1, 123, 2, 4, 111, 7]; arr.sort(function(a, b) { return b - a; }); console.log(arr);

コードの実行結果:

[123, 111, 7, 4, 2, 1]

オブジェクトの配列を、キー 'one' で昇順にソートしてみましょう:

let arr = [ {one: 1, two: 2}, {one: 7, two: 1}, {one: 3, two: 3} ]; arr.sort(function(a, b) { return a.one - b.one; }); console.log(arr);

コードの実行結果:

[ {one: 1, two: 2}, {one: 3, two: 3}, {one: 7, two: 1} ]

次に、オブジェクトの配列をキー 'two' でソートしてみましょう:

let arr = [ {one: 1, two: 2}, {one: 7, two: 1}, {one: 3, two: 3} ]; arr.sort(function(a, b) { return a.two - b.two; }); console.log(arr);

コードの実行結果:

[ {one: 7, two: 1}, {one: 1, two: 2}, {one: 3, two: 3} ]

メソッド sort を適用した後、配列が変更されたか確認してみましょう:

let arr = ['b', 'a', 'd', 'c']; let res = arr.sort(); console.log(arr);

コードの実行結果:

['a', 'b', 'c', 'd']

関連項目

  • メソッド filter,
    配列の要素をフィルタリングすることができます
日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否