カテゴリ: JavaScript 更新日: 2026/03/14

JavaScriptの配列を逆順にする方法(reverseメソッド活用)

JavaScriptの配列を逆順にする方法(reverseメソッド活用)
JavaScriptの配列を逆順にする方法(reverseメソッド活用)

先生と生徒の会話形式で理解しよう

生徒

「先生、JavaScriptで配列の中身を逆順にしたいんですけど、どうやったらいいですか?」

先生

「配列を逆順にするには、JavaScriptのreverseメソッドを使います。このメソッドはとても簡単で便利ですよ。」

生徒

「どんな感じで使うんですか?」

先生

「では、具体的な使い方を見てみましょう!」

1. reverseメソッドとは?配列を逆さにする魔法の道具

1. reverseメソッドとは?配列を逆さにする魔法の道具
1. reverseメソッドとは?配列を逆さにする魔法の道具

JavaScriptのreverseメソッドは、配列に格納されたデータの並び順を、最後尾から先頭へと完全に反転させるための便利な機能です。プログラミング初心者の方でも、非常にシンプルに扱えるのが特徴です。

例えば、「1番目:りんご」「2番目:バナナ」「3番目:みかん」と並んでいるリストを、「3番目だったみかんを1番目にする」といった操作が、たった1行のコードで実現できます。データの表示順を逆にしたい、あるいはスタック(最後に入れたものを最初に出す)のような挙動を実装したいときによく使われます。

まずは、最も基本的な書き方を見てみましょう。配列の名前の直後に.reverse()と付け加えるだけで完了です。


// 果物の名前が入った配列(リスト)を用意します
let fruits = ["りんご", "バナナ", "みかん"];

// reverseメソッドを実行して、順番をひっくり返します
fruits.reverse();

// 結果をコンソールに表示して確認します
console.log(fruits);

["みかん", "バナナ", "りんご"]

このように、コードを実行した瞬間に配列の並びが逆転しました。このメソッドは「中身が何であるか」は判断せず、単純に「現在のインデックス(添え字)」を反対に並び替える処理を行います。

プログラミングを始めたばかりの方は、まずは「配列の後ろに付けるだけで順番が変わる魔法の言葉」として覚えておくと、UIの実装などで非常に役立ちます。

2. reverseメソッドは元の配列を書き換える(破壊的メソッド)

2. reverseメソッドは元の配列を書き換える(破壊的メソッド)
2. reverseメソッドは元の配列を書き換える(破壊的メソッド)

JavaScriptでreverseを使う際に、最も注意しなければならないのが「元の配列そのものが書き換わってしまう」という点です。これをプログラミング用語で「破壊的な変更」と呼びます。

例えば、一度逆順にしてしまうと、元の「1、2、3...」という順番の情報は消えてしまい、元の変数の中身が「...3、2、1」に上書きされます。後から元の順番でデータを使いたい場合に困ってしまいますよね。

そこで、元のデータを保護しつつ逆順の結果も手に入れるには、配列の「コピー」を作成してから実行するのが鉄則です。2026年現在のモダンな開発現場では、toReversed()という元の配列を壊さない新しいメソッドも使われますが、まずは基本であるslice()を使ったコピー方法をマスターしましょう。


// 1. 元の配列を用意する
let fruits = ["りんご", "バナナ", "みかん"];

// 2. slice()で中身をコピーしてから、reverse()で逆順にする
// これにより「元の配列」と「逆順の配列」が別々に存在できます
let reversedFruits = fruits.slice().reverse();

// 3. 結果を比較してみる
console.log("元の配列:", fruits);
console.log("逆順の配列:", reversedFruits);

元の配列: ["りんご", "バナナ", "みかん"]
逆順の配列: ["みかん", "バナナ", "りんご"]

このように、slice()を間に挟むだけで、元のリストを汚さずに安全に操作ができます。初心者の方は「reverseを使うときは、元のデータが壊れても大丈夫かな?」と一瞬考える癖をつけるのが、バグを防ぐプロへの第一歩です。

3. reverseメソッドの注意点:配列の中身の種類は関係なし

3. reverseメソッドの注意点:配列の中身の種類は関係なし
3. reverseメソッドの注意点:配列の中身の種類は関係なし

reverseは配列の中身が文字列でも数字でも、順番をひっくり返すだけなので、中身の種類は気にしなくて大丈夫です。


let numbers = [1, 2, 3, 4, 5];

numbers.reverse();

console.log(numbers);

[5, 4, 3, 2, 1]

このように数字の配列も簡単に逆順になります。

4. 実際の利用例:逆順で表示したいときに便利

4. 実際の利用例:逆順で表示したいときに便利
4. 実際の利用例:逆順で表示したいときに便利

例えば、チャットのメッセージ一覧を新しい順に表示したいとき、もともと古い順に並んでいる配列を逆順にして使えます。


let messages = ["こんにちは", "お元気ですか?", "さようなら"];

let newestFirst = messages.slice().reverse();

console.log(newestFirst);

["さようなら", "お元気ですか?", "こんにちは"]

このように表示したい順番に簡単に変えられます。

5. 配列の逆順操作と他のメソッドの組み合わせ

5. 配列の逆順操作と他のメソッドの組み合わせ
5. 配列の逆順操作と他のメソッドの組み合わせ

reversesortfilterなど他の配列操作メソッドとも組み合わせて使うことが多いです。

例えば、数字の配列を小さい順に並べ替えてから逆順にすると、大きい順に並べることができます。


let numbers = [10, 3, 7, 1];

let descending = numbers.slice().sort((a, b) => a - b).reverse();

console.log(descending);

[10, 7, 3, 1]

こうして複数のメソッドをつなげて使うことで、柔軟に配列の操作ができます。

6. まとめの代わりに最後のポイント

6. まとめの代わりに最後のポイント
6. まとめの代わりに最後のポイント

reverseメソッドはとてもシンプルで、配列の順番をひっくり返すのに便利です。ただし、元の配列を変えたくないときはコピーしてから使うのが安全です。

また、他の配列メソッドと組み合わせて使うことで、より効果的にデータを扱えます。

まとめ

まとめ
まとめ

ここまで、JavaScriptで配列を逆順にするための基本操作であるreverseメソッドについて詳しく解説してきました。配列の操作はプログラミングにおいて避けては通れない非常に重要な要素です。特にデータの並び順を制御するシーンは、Webアプリ開発やデータ処理の現場で頻繁に登場します。今回の内容を振り返り、さらに一歩踏み込んだ応用知識を整理していきましょう。

reverseメソッドの核心的な特徴

reverseメソッドの最大の特徴は、その「破壊的」な性質にあります。多くのプログラミング初心者が陥りやすい罠が、この「元の配列が書き換わってしまう」という点です。JavaScriptには、元のデータを変更せずに新しいデータを返す「非破壊的」なメソッド(例えばmapfiltersliceなど)と、元のデータを直接加工する「破壊的」なメソッドがあります。reverseは後者です。

この性質を理解していないと、意図しない場所で配列の順番が変わってしまい、バグの原因になります。例えば、同じ配列を複数の場所で参照している場合、一箇所でreverseを呼び出すと、すべての参照先で逆順になってしまいます。

安全に配列を逆転させるためのテクニック

元の配列を保持したまま、逆順になった新しい配列を手に入れたい場合は、スプレッド構文やsliceメソッド、あるいは比較的新しいtoReversedメソッドを活用するのがスマートです。

1. スプレッド構文を用いたコピー

モダンなJavaScript(ES6以降)では、ドット三つを使うスプレッド構文がよく使われます。


const original = [10, 20, 30, 40, 50];
// スプレッド構文でコピーしてから逆転
const reversed = [...original].reverse();

console.log("元の配列:", original);
console.log("逆転後の配列:", reversed);

元の配列: [10, 20, 30, 40, 50]
逆転後の配列: [50, 40, 30, 20, 10]

2. 新機能 toReversedメソッドの活用

最新のJavaScript環境(ES2023以降)では、toReversedというメソッドが追加されました。これは、元の配列を変更せずに、逆順にした新しい配列を返してくれる非破壊的なメソッドです。


const colors = ["red", "blue", "green"];
// 元の配列を壊さず新しい配列を生成
const newColors = colors.toReversed();

console.log(colors);
console.log(newColors);

["red", "blue", "green"]
["green", "blue", "red"]

実務で役立つ具体的なシナリオ

配列を逆順にする操作は、単に「後ろから読みたい」という時以外にも、アルゴリズムの構築において強力な武器になります。

  • 履歴データの表示: ログデータや通知リストは、通常「古い順」に配列へ追加されます。しかし、ユーザーに見せる際は「新しい順」にしたいことが多いため、表示直前で逆転させます。
  • 文字列の反転処理: 文字列を一度split("")で一文字ずつの配列にし、reverse()してからjoin("")で結合することで、文字列を逆さまにできます。
  • 計算効率の向上: 配列の先頭要素を削除する(shift)のは計算負荷が高いですが、配列を逆転させて末尾を削除(pop)し、再度逆転させるという手法が取られることもあります(要素数が多い場合など)。

TypeScriptでの型安全な配列反転

TypeScriptを利用している場合でも、基本的な使い方は同じですが、型推論がしっかり効くため、より安全にコーディングが可能です。


interface User {
    id: number;
    name: string;
}

const userList: User[] = [
    { id: 1, name: "田中" },
    { id: 2, name: "佐藤" },
    { id: 3, name: "鈴木" }
];

// TypeScriptでも破壊的な操作に注意
const reversedUsers: User[] = [...userList].reverse();

reversedUsers.forEach(user => {
    console.log(`ID: ${user.id}, 名前: ${user.name}`);
});

HTML要素の並び順を操作する応用

JavaScriptを使ってDOM要素(HTMLのタグ)の並び順を制御する場合も、一度配列に変換してからreverseをかける手法が有効です。


<ul id="itemList">
    <li>アイテム1</li>
    <li>アイテム2</li>
    <li>アイテム3</li>
</ul>

<script>
const list = document.getElementById('itemList');
const items = Array.from(list.getElementsByTagName('li'));

// 配列を逆転させてDOMを再配置
items.reverse().forEach(item => list.appendChild(item));
</script>

このように、reverseメソッドは単独で使うだけでなく、他の技術と組み合わせることでその真価を発揮します。 配列操作はJavaScriptの基本中の基本ですが、奥が深く、使いこなせればコードの記述量が減り、可読性も格段に向上します。 今回の学習を通じて、単に「逆にする」という機能だけでなく、「元のデータをどう扱うか」というエンジニアにとって大切な視点も身についたのではないでしょうか。 これからも様々なメソッドに触れ、自分のプログラムに最適な手段を選べるようになっていきましょう。

先生と生徒の振り返り会話

生徒

「先生、ありがとうございます!reverseメソッドって、ただ.reverse()って書くだけでいいから本当に簡単ですね。でも、元の配列まで変わっちゃうっていうのは正直驚きました。もし気づかずに使ってたら、他の場所でデータが変になって大慌てしてたかもしれません…。」

先生

「いいところに気づきましたね。プログラミングでは、このように『元のデータ(状態)を書き換えてしまうこと』を副作用と呼んだりします。便利な反面、予期せぬ挙動を生む原因にもなるので、慣れるまでは『まずはコピーしてから逆転させる』という癖をつけておくと安心ですよ。」

生徒

「副作用、覚えました!スプレッド構文の[...array]を使ってコピーする方法が、短くて書きやすそうですね。あと、最新のtoReversedというのも気になります。これならコピーの手間も省けますね。」

先生

「その通りです!ただ、toReversedは比較的新しい機能なので、古いブラウザや古い環境だと動かないこともあります。仕事で使うときは、動かす環境が対応しているかチェックするのも大事なエンジニアの仕事の一つですね。ちなみに、他に配列について気になったことはありますか?」

生徒

「えーっと、もし配列の中にさらに配列が入っているような、多次元配列の場合はどうなるんですか?中身の配列まで逆順になったりしますか?」

先生

「鋭い質問です!reverseが行うのは、あくまで一番外側の配列の『インデックス(番号)の入れ替え』だけです。なので、中に入っている配列の内部までは逆転しません。もし中身まで逆転させたいなら、ループ処理やmapを組み合わせて、階層ごとに処理していく必要があります。これを『深い階層の操作』なんて言ったりしますね。」

生徒

「なるほど、あくまで一段目だけをひっくり返すんですね。仕組みがわかると、どう使えばいいかイメージが湧いてきました。数字の大きい順に並べたいときは、sortと組み合わせて使ってみます!」

先生

「完璧です!その調子で、配列のいろいろなメソッドを組み合わせて、パズルのように組み立ててみてください。JavaScriptがもっと楽しくなりますよ。」

カテゴリの一覧へ
新着記事
New1
JavaScript
JavaScriptの条件式におけるnull・undefined判定のコツ!初心者でもわかる判定方法ガイド
New2
JavaScript
JavaScriptの条件式で論理演算子(&&, ||, !)を活用する方法!初心者でもわかる使い方ガイド
New3
TypeScript
TypeScriptでエラー処理を共通関数化して効率的に開発しよう!初心者向け例外処理ガイド
New4
JavaScript
JavaScriptの条件式における比較演算子の使い方まとめ!初心者でもわかる基本ルールと活用法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptのtoStringとString関数の違いを初心者向けに解説
No.3
Java&Spring記事人気No3
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptで統一感のあるコードを書くための基本ルール完全ガイド初心者向けコーディング規約入門
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptのonclick・onchangeなどの基本イベントを理解しよう
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.7
Java&Spring記事人気No7
TypeScript
TypeScriptのnever型を使ったエラーハンドリング!例外処理を極める安全なコードの書き方
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptの数値フォーマット(小数点以下の桁数調整)を学ぼう