Array.prototype.toReversed()

Baseline 2023
Newly available

Since July 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

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

構文

js
toReversed()

引数

なし。

返値

要素を逆順に格納した新しい配列です。

解説

toReversed() メソッドは、呼び出した配列オブジェクトの要素を逆順に並べ替えて新しい配列を返します。

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

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

配列内の要素を反転

次の例では、 3 つの要素を格納した配列 items を作成し、次に items の逆の配列を新しく作成します。このとき items 配列は変更されません。

js
const items = [1, 2, 3];
console.log(items); // [1, 2, 3]

const reversedItems = items.toReversed();
console.log(reversedItems); // [3, 2, 1]
console.log(items); // [1, 2, 3]

疎配列に対する toReversed() の使用

toReversed() の返値は決して疎配列にはなりません。空のスロットは返す配列の undefined になります。

js
console.log([1, , 3].toReversed()); // [3, undefined, 1]
console.log([1, , 3, 4].toReversed()); // [4, 3, undefined, 1]

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

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

js
const arrayLike = {
  length: 3,
  unrelated: "foo",
  2: 4,
};
console.log(Array.prototype.toReversed.call(arrayLike));
// [4, undefined, undefined]
// '0' と '1' インデックスは存在しませんので、未定義となります。

仕様書

Specification
ECMAScript® 2025 Language Specification
# sec-array.prototype.toreversed

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
toReversed

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support

関連情報