JavaScript | レベル別練習問題:配列

JavaScript
スポンサーリンク

では今回は「ネスト配列(配列の中に配列)+条件付き更新」の例を作り、ステップ実行で変数・配列状態を逐次追跡して解説します。


練習問題:2次元配列内の偶数を2倍にする

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

// 偶数を2倍に変換
for (let i = 0; i < matrix.length; i++) {
    for (let j = 0; j < matrix[i].length; j++) {
        if (matrix[i][j] % 2 === 0) {
            matrix[i][j] *= 2;
        }
    }
}

console.log(matrix);
JavaScript

出力

[
  [1, 4, 3],
  [8, 5, 12],
  [7, 16, 9]
]

ステップ実行(逐次追跡)

ijmatrix[i][j] (前)条件 matrix[i][j]%2===0matrix[i][j] (後)実行内容
001false1偶数でないので変更なし
012true42×2=4 に更新
023false3偶数でないので変更なし
104true84×2=8 に更新
115false5偶数でないので変更なし
126true126×2=12 に更新
207false7偶数でないので変更なし
218true168×2=16 に更新
229false9偶数でないので変更なし

解説ポイント

  1. 二重ループ
    • 外側: 行(i)
    • 内側: 列(j)
  2. 条件付き更新
    • 偶数だけを対象に 2 倍に更新
  3. 逐次追跡表のメリット
    • 配列の中身がループごとにどう変化するか明確
    • デバッグやロジック確認に有効
  4. 応用例
    • 2次元配列(マトリックス)での条件付き変換
    • ゲームのグリッドデータ更新(例: ゼロ以外のセルだけ処理)
    • 表形式データの一括処理

💡 拡張例

  • 条件を複雑にして「偶数かつ5未満なら3倍」など
  • 3次元配列(配列の中に配列の中に配列)で同様に逐次追跡
  • 元配列を変更せずに新しい配列に変換(map + map)
タイトルとURLをコピーしました