JavaScript Array sort()

定義と使用方法

sort() このメソッドは配列の要素を並べ替えます。

並べ替え順序はアルファベットまたは数字で、昇順(上向き)または降順(下向き)にすることができます。

デフォルトでは、sort() このメソッドは値をアルファベットおよび昇順に文字列として並べ替えます。

これは文字列("Apple" は "Banana" よりも前に表示されます)に適用されますが、数字が文字列で並べ替えられる場合、"25" は "100" より大きいと見なされます。なぜなら、"2" は "1" より大きいからです。

そのため、sort() このメソッドは数字を並べ替える際に不正確な結果を生成します。

「比較関数」を提供することでこの問題を解決できます(以下の「パラメータ値」を参照してください)。

注釈:sort() このメソッドは元の配列を変更します。

例 1

配列を並べ替えます:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();

実際に試してみる

例 2

配列内の数字を昇順に並べ替えます:

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a-b});

実際に試してみる

例 3

配列内の数字を降順に並べ替えます:

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return b-a});

実際に試してみる

例 4

配列の中の最小値を取得:

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a-b});    // 配列の中の数字を昇順に並べ替えます
// 配列の最初の項 (points[0]) は今や最低値です

実際に試してみる

例 5

配列の中の最大値を取得:

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return b-a});    // 配列の中の数字を降順に並べ替えます
// 配列の最初の項 (points[0]) は今や最高値です

実際に試してみる

例 6

配列の中の最大値を取得:

const points = [40, 100, 1, 5, 25, 10];
// 数字を昇順に並べ替えます:
points.sort(function(a, b){return a-b});
// points[points.length-1] = 100(最高値)

実際に試してみる

例 7

配列をアルファベット順に並べ替え、その後並べ替え項の順序を逆転(降順):

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();
fruits.reverse();

実際に試してみる

文法

array.sort(compareFunction)

引数の値

引数 説明
compareFunction

オプション。代替的な並べ替え順序を定義する関数。この関数は、引数に応じて負の値、ゼロの値、または正の値を返す必要があります。例えば:

  • function(a, b){return a-b}

sort()メソッドが2つの値を比較する際には、値を比較関数に送信し、返される(負、ゼロ、正)の値に基づいて値を並べ替えます。

例:

40と100を比較する際には、sort()メソッドが比較関数(40,100)を呼び出します。

この関数は40-100を計算し、-60(負の値)を返します。

sort 関数は40を100より小さい値として並べ替えます。

技術的な詳細

返り値: 要素が並べ替えられた配列オブジェクト。
JavaScript バージョン: ECMAScript 1

ブラウザのサポート

すべてのブラウザで完全にサポートされています sort() 方法:

Chrome IE Edge Firefox Safari Opera
Chrome IE Edge Firefox Safari Opera
サポート サポート サポート サポート サポート サポート

関連ページ

チュートリアル:JavaScript 配列

チュートリアル:JavaScript 配列 Const

チュートリアル:JavaScript 配列メソッド

チュートリアル:JavaScript 配列のソート

チュートリアル:JavaScript 配列のイテレーション

マニュアル:JavaScript Array.reverse() メソッド