JavaScriptのforループで配列を逆順にする方法
今回は、配列を受け取り、その要素を逆順に並べ替えた新しい配列を返す関数を作成します。reverse() メソッドなどは使わず、forループだけを使って実装する方法を解説します。
サンプル配列
まず、今回使用するサンプル配列は以下のとおりです。
const arr = [7, 2, 3, 4, 5, 7, 8, 12, -12, 43, 6];
コード例
それでは、この関数のコードを見ていきましょう。
const arr = [7, 2, 3, 4, 5, 7, 8, 12, -12, 43, 6];
const reverse = (arr) => {
const duplicate = arr.slice();
const reversedArray = [];
const { length } = arr;
for(let i = 0; i < length; i++){
reversedArray.push(duplicate.pop());
};
return reversedArray;
};
console.log(reverse(arr));コードの解説
この関数がどのように動作するのか、処理の流れを確認してみましょう。
arr.slice(): 元の配列を変更しないよう、slice()でコピーを作成します。これにより、元の配列はそのまま保持されます。duplicate.pop(): コピーした配列から末尾の要素を取り除き、その値を返します。reversedArray.push(): 取り出した要素を新しい配列の末尾へ追加します。forループ: 配列の長さ(length)の回数だけ繰り返すことで、末尾から順に要素を取り出し、逆順の配列を完成させます。
つまり、「後ろから1つずつ要素を取り出して、前から順に詰めていく」というシンプルな仕組みです。
出力結果
コンソールには以下のように出力されます。
[
6, 43, -12, 12, 8,
7, 5, 4, 3, 2,
7
]補足:組み込みメソッドとの違い
なお、JavaScriptには標準で Array.prototype.reverse() メソッドが用意されています。ただし、このメソッドは元の配列自体を書き換える(破壊的な操作)点に注意が必要です。元の配列を保持したい場合は、本記事のように slice() でコピーしてから処理するか、[...arr].reverse() のようにスプレッド構文でコピーを作るのが一般的です。
-
JavaScriptの配列reverse()メソッドとは?使い方とサンプルコードを解説
JavaScriptのreverse()メソッドは、配列の要素を逆順に並べ替えるために使用されるメソッドです。呼び出すと元の配列そのものが反転され、その結果の配列が戻り値として返されます。構文array.reverse()reverse()メソッドのポイント引数は不要で、呼び出した配列自体を直接書き換えます(破壊的なメソッド)。戻り値は、要素が反転された配列への参照です。元の配列を変更せずに反転したい場合は、ES2023で追加されたtoReversed()メソッドを使うと便利です。それでは、実際にJavaScriptでreverse()メソッドを実装してみましょう。例1:基本的な使い方<
-
【初心者向け】JavaScriptのreverse()メソッドで配列を逆順にする方法
JavaScriptのreverse()メソッドは、配列の要素を元の順序と逆順に入れ替えるための便利な関数です。このメソッドを呼び出すと、配列の最初の要素が最後に、最後の要素が最初に移動し、配列全体が反転されます。reverse()メソッドの基本reverse()は配列そのものを変更する「破壊的メソッド」である点に注意してください。つまり、元の配列の順序が直接書き換えられます。元の配列を保持したい場合は、あらかじめslice()やスプレッド構文([...arr])などでコピーを作成してからreverse()を使用するのがおすすめです。サンプルコード以下は、ボタンをクリックすると配列の要素が逆順