カテゴリ: JavaScript 更新日: 2025/10/09

JavaScriptのループをネストして多次元配列を操作する方法を初心者向けに解説!

JavaScriptのループをネストして多次元配列を操作する方法
JavaScriptのループをネストして多次元配列を操作する方法

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

生徒

「先生、JavaScriptで多次元配列って何ですか?そして、どうやってループで操作するんですか?」

先生

「多次元配列は、配列の中にさらに配列が入っているものです。たとえば、表のように行と列があるデータを扱うときに使います。操作には、ループを入れ子にして使うんですよ。」

生徒

「ループを入れ子?それってどういう意味ですか?」

先生

「ループの中にさらにループを書くことを入れ子(ネスト)と言います。多次元配列は階層が深いので、外側のループで行を、内側のループで列を順番に処理します。」

生徒

「なるほど!具体的にコード例を教えてください!」

先生

「はい、それでは順を追って解説していきましょう!」

1. 多次元配列とは?

1. 多次元配列とは?
1. 多次元配列とは?

多次元配列とは、配列の中にさらに配列が入っている構造のことです。わかりやすく言うと、2次元の表(例えば、エクセルのような行と列のデータ)を扱うときに使います。

例えば、次のように書きます。


const matrix = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];

この例では、3行3列の数字の表が配列で表されています。

2. ループのネストとは?

2. ループのネストとは?
2. ループのネストとは?

ループのネストとは、「ループの中に別のループを入れる」ことです。例えば、外側のループで行を1つずつ見て、内側のループでその行の中の列を1つずつ見ます。

こうすることで、多次元配列のすべての要素に順番にアクセスできます。

3. 多次元配列をループのネストで操作する基本例

3. 多次元配列をループのネストで操作する基本例
3. 多次元配列をループのネストで操作する基本例

実際に、先ほどの3x3の配列をループのネストで1つずつ出力するコードを見てみましょう。


const matrix = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];

for (let i = 0; i < matrix.length; i++) {      // 外側のループ:行を順に見る
  for (let j = 0; j < matrix[i].length; j++) {  // 内側のループ:その行の列を順に見る
    console.log(matrix[i][j]);
  }
}

このコードでは、iが行番号(インデックス)、jが列番号(インデックス)を表しています。

実行すると、1から9まで順番にコンソールに表示されます。

4. インデックス番号について

4. インデックス番号について
4. インデックス番号について

配列の番号は0から始まるので、matrix[0]が1行目の配列、matrix[1]が2行目の配列です。

同様に、matrix[0][0]は1行1列目の要素(数字の1)、matrix[2][1]は3行2列目の要素(数字の8)です。

このようにインデックスを使うことで、多次元配列のどの位置の値でも取り出せます。

5. 多次元配列の値を変更する方法

5. 多次元配列の値を変更する方法
5. 多次元配列の値を変更する方法

ループの中で配列の値を書き換えることもできます。例えば、すべての数字に10を足す場合は次のように書きます。


for (let i = 0; i < matrix.length; i++) {
  for (let j = 0; j < matrix[i].length; j++) {
    matrix[i][j] = matrix[i][j] + 10;
  }
}
console.log(matrix);

実行結果はすべての数字に10が足された新しい多次元配列になります。

6. ネストされたループで配列の各要素を出力する応用例

6. ネストされたループで配列の各要素を出力する応用例
6. ネストされたループで配列の各要素を出力する応用例

多次元配列の中身を行ごとにわかりやすく表示したい場合は、以下のようにループ内で文字列を組み合わせて出力することもできます。


for (let i = 0; i < matrix.length; i++) {
  let rowStr = "";
  for (let j = 0; j < matrix[i].length; j++) {
    rowStr += matrix[i][j] + " ";
  }
  console.log("行 " + (i + 1) + ": " + rowStr);
}

このコードは、「行 1: 1 2 3 」のように、行番号とその行の要素をまとめて表示します。

7. 多次元配列のループ処理で気をつけたいポイント

7. 多次元配列のループ処理で気をつけたいポイント
7. 多次元配列のループ処理で気をつけたいポイント
  • 外側のループは多次元配列の「行」の数だけ回す
  • 内側のループはその行の「列」の数だけ回す
  • 配列のインデックスは0から始まるので注意する
  • 多次元配列は配列の中に配列が入っているので、深さに応じてループを入れ子にする

これらのポイントを押さえておくと、多次元配列の扱いがスムーズになります。

8. まとめなしで最後にひとこと

8. まとめなしで最後にひとこと
8. まとめなしで最後にひとこと

JavaScriptのループのネストは多次元配列を操作するときに欠かせないテクニックです。まずは表のような2次元配列から練習し、慣れてきたら3次元以上の配列にもチャレンジしてみてください。

カテゴリの一覧へ
新着記事
New1
TypeScript
TypeScriptでパスエイリアスを設定する方法!baseUrlとpathsでコードをスッキリ整理
New2
JavaScript
JavaScriptのfor文の書き方を初心者向けにやさしく解説
New3
JavaScript
JavaScriptの関数でよくあるエラーとその解決法まとめ
New4
JavaScript
JavaScriptのイベント処理でよくあるエラーとその対処法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptのマウスイベントの使い方(click, mouseoverなど)
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptのtoStringとString関数の違いを初心者向けに解説
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptの純粋関数(pure function)と副作用の違いを理解しよう
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptで文字列をforループで1文字ずつ処理する方法!初心者向け解説
No.7
Java&Spring記事人気No7
TypeScript
TypeScriptの始め方:開発環境の構築手順【初心者向け】
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptのDOMContentLoadedとloadイベントの違いを理解しよう