JavaScript Array toSorted()

定義と使用方法

toSorted() メソッドは配列の要素をアルファベット順にソートします。

toSorted() メソッドは新しい配列を返します。

toSorted() メソッドは元の配列を上書きしません。

toSorted() メソッドは sort() メソッドのコピー版。

参照もしくは関連

Array sort() メソッド

Array reverse() メソッド

ソート比較関数

文字列のアルファベット順にソートすると、文字列には良い効果があります("Apple" は "Banana" よりも前に配置)。

しかし、数字のソートは間違った結果を生むことがあります。

"25" は "100" より大きい、なぜなら "2" は "1" より大きいから。

「比較関数」を提供することでこの問題を解決できます(以下の例を参照)。

例1

// 配列を作成
const fruits = ["Banana", "Orange", "Apple", "Mango"];
// 配列をソート
const fruits2 = fruits.toSorted();

実際に試してみてください

例2

ソート後の逆転順序:

// 配列を作成
const fruits = ["Banana", "Orange", "Apple", "Mango"];
// 配列をソート
const fruits2 = fruits.toSorted();
// 配列を逆転
fruits2.reverse();

実際に試してみてください

例3

ソート関数を使用して数字を昇順にソート:

// 配列を作成
const points = [40, 100, 1, 5, 25, 10];
// 配列をソート
let points2 = points.toSorted(function(a, b){return a - b});

実際に試してみてください

例4

数字を降順にソート:

// 配列を作成
const points = [40, 100, 1, 5, 25, 10];
// 配列をソート
let points2 = points.toSorted(function(a, b){return b - a});

実際に試してみてください

例5

最小値を探す:

// 配列を作成
const points = [40, 100, 1, 5, 25, 10];
// 数字を昇順にソート
let points2 = points.toSorted(function(a, b){return a - b});
let lowest = points2[0];

実際に試してみてください

例6

最大値を探す:

// 配列を作成
const points = [40, 100, 1, 5, 25, 10];
// 数字を降順にソート
let points2 = points.toSorted(function(a, b){return b - a});
let highest = points2[0];

実際に試してみてください

例7

最大値を探す:

// 配列を作成
const points = [40, 100, 1, 5, 25, 10];
// 数字を昇順にソート
let points2 = points.toSorted(function(a, b){return a - b});
let highest = points2[points.length - 1];

実際に試してみてください

構文

array.sort(compareFunction)

引数

引数 説明
compareFunction

オプション。ソート順序を定義する関数。この関数は、引数に基づいて負の値、ゼロ、または正の値を返す必要があります:

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

sort()が2つの値を比較する場合、これらの値を比較関数に送信し、返された(負の値、ゼロ、正の値)に基づいて値をソートします。

例:

ソート関数は40を100よりも小さい値として見なします。

40と100を比較する場合、sort()はfunction(40, 100)を呼び出します。

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

返り値

タイプ 説明
Array ソートされた新しい配列。

ブラウザのサポート

toSorted() ES2023の機能です。

2023年7月から、すべての現代ブラウザがこのメソッドをサポートしています:

Chrome Edge Firefox Safari Opera
Chrome 110 Edge 110 Firefox 115 Safari 16.4 Opera 96
2023年2月 2023年2月 2023年7月 2023年3月 2023年5月