Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

Array.prototype.toSorted()

Baseline2023
Newly available

toSorted()Array インスタンスのメソッドで、sort() メソッドに対応するコピーメソッドです。これは、要素を昇順にソートした新しい配列を返します。

構文

js
toSorted()toSorted(compareFn)

引数

compareFn省略可

ソート順を定義する関数を指定します。省略した場合は、配列の要素を文字列に変換し、 Unicode コードポイントの値に従って並べ替えます。

a

比較する最初の要素です。

b

比較する 2 番目の要素です。

返値

要素を昇順にソートした新しい配列です。

解説

compareFn 引数の情報についてはsort() を参照してください。

疎配列が使用された場合、toSorted() メソッドは空のスロットをundefined という値があるものとして反復処理します。

toSorted() メソッドは汎用です。this の値がlength プロパティを持っており、整数のキーのプロパティがあることのみを期待します。

配列のソート

js
const months = ["Mar", "Jan", "Feb", "Dec"];const sortedMonths = months.toSorted();console.log(sortedMonths); // ['Dec', 'Feb', 'Jan', 'Mar']console.log(months); // ['Mar', 'Jan', 'Feb', 'Dec']const values = [1, 10, 21, 2];const sortedValues = values.toSorted((a, b) => a - b);console.log(sortedValues); // [1, 2, 10, 21]console.log(values); // [1, 10, 21, 2]

他の利用例は、sort() を参照してください。

疎配列における toSorted() の使用

空のスロットは値がundefined であるかのようにソートされます。これらは常に配列の末尾にソートされ、compareFn は呼び出されません。

js
console.log(["a", "c", , "b"].toSorted()); // ['a', 'b', 'c', undefined]console.log([, undefined, "a", "b"].toSorted()); // ["a", "b", undefined, undefined]

配列以外のオブジェクトに対する toSorted() の呼び出し

toSorted() メソッドはthislength プロパティを読み取ります。そして、length - 1 から0 までの整数のキーを持つ各プロパティを降順に訪れ、現在のプロパティの値を配列の末尾に追加して返します。

js
const arrayLike = {  length: 3,  unrelated: "foo",  0: 5,  2: 4,  3: 3, // length が 3 なので toSorted() からは無視される};console.log(Array.prototype.toSorted.call(arrayLike));// [4, 5, undefined]

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-array.prototype.tosorted

ブラウザーの互換性

関連情報

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp