Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

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

Array.prototype.reverse()

BaselineWidely available

reverse()Array のメソッドで、配列の要素をその場 (in-place) で反転させ、その配列への参照を返します。最初の要素が最後の要素に、最後の要素が最初の要素になります。言い換えれば、配列内の要素順序を、先に述べた方向とは逆に向かわせます。

元の配列を変更せずに配列の要素を反転させるにはtoReversed() を使用してください。

試してみましょう

const array1 = ["one", "two", "three"];console.log("array1:", array1);// Expected output: "array1:" Array ["one", "two", "three"]const reversed = array1.reverse();console.log("reversed:", reversed);// Expected output: "reversed:" Array ["three", "two", "one"]// Careful: reverse is destructive -- it changes the original array.console.log("array1:", array1);// Expected output: "array1:" Array ["three", "two", "one"]

構文

js
reverse()

引数

なし。

返値

元の配列を反転されたものへの参照です。なお、配列はその場 (in-place) で反転され、コピーは作られません。

解説

reverse() メソッドは、呼び出した配列オブジェクトの要素を反転し、書き換えられた配列の参照を返します。

reverse() メソッドは空のスロットを維持します。元の配列が疎配列である場合、空のスロットに対応する新しいインデックスは削除され、空のスロットになります。

reverse() メソッドは汎用的です。これはthis 値にlength プロパティと整数キーのプロパティがあることだけを期待します。文字列も配列風ですが、文字列は不変であるため、このメソッドを適用するのは適切ではありません。

配列の要素を反転させる

次の例は、3 つの要素を含む配列items を作成し、その配列を反転させます。reverse() の呼び出しは、反転した配列items への参照を返します。

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

reverse() メソッドは同じ配列への参照を返す

reverse() メソッドは元の配列への参照を返すので、返された配列を変更すると、元の配列も変更されます。

js
const numbers = [3, 2, 4, 1, 5];const reversed = numbers.reverse();// numbers and reversed are both in reversed order [5, 1, 4, 2, 3]reversed[0] = 5;console.log(numbers[0]); // 5

reverse() で元の配列を変更せず、他の配列メソッド(map() など)が行うようにシャローコピーした配列を返すようにするには、toReversed() メソッドを使用してください。他にも、reverse() を呼び出す前にスプレッド構文Array.from() を使用してシャローコピーを行っておくこともできます。

js
const numbers = [3, 2, 4, 1, 5];// [...numbers] はシャローコピーを作成するので、 reverse() は元の配列を変更しないconst reverted = [...numbers].reverse();reverted[0] = 5;console.log(numbers[0]); // 3

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

疎配列はreverse() を呼び出しても疎配列のままです。空のスロットは空のスロットとしてそれぞれの新しいインデックスにコピーされます。

js
console.log([1, , 3].reverse()); // [3, empty, 1]console.log([1, , 3, 4].reverse()); // [4, 3, empty, 1]

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

reverse() メソッドはthislength プロパティを読み込みます。そして、0 からlength / 2 までの整数のキーを持つ各プロパティを参照し、両端の対応する 2 つのインデックスを入れ替えます。出力先のプロパティで、参照元のプロパティが存在しないものは削除します。

js
const arrayLike = {  length: 3,  unrelated: "foo",  2: 4,  3: 33, // length が 3 であるため reverse() 空は無視される};console.log(Array.prototype.reverse.call(arrayLike));// { 0: 4, 3: 33, length: 3, unrelated: 'foo' }// 元々インデックス 0 が存在しなかったため、インデックス 2 は削除される// 長さが 3 であるため、インデックス 3 は変更されない

仕様書

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

ブラウザーの互換性

関連情報

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp