今回は「配列操作」の別の問題を使い、逐次追跡ステップ実行表を作ります。
初心者が「ループごとに配列がどう変化するか」を理解できるようにします。
練習問題:配列内の偶数を2倍にする
let numbers = [3, 4, 7, 2, 5];
let doubledEvens = [];
for (let i = 0; i < numbers.length; i++) {
if (numbers[i] % 2 === 0) {
doubledEvens.push(numbers[i] * 2);
}
}
console.log(doubledEvens);
JavaScript出力
[8, 4]
ステップ実行(逐次追跡)
| i | numbers[i] | 条件 numbers[i]%2===0 | doubledEvens (前→後) | 実行内容 |
|---|---|---|---|---|
| 0 | 3 | false | [] → [] | 偶数でないため push なし |
| 1 | 4 | true | [] → [8] | 4×2=8 を配列に追加 |
| 2 | 7 | false | [8] → [8] | 偶数でないため push なし |
| 3 | 2 | true | [8] → [8,4] | 2×2=4 を配列に追加 |
| 4 | 5 | false | [8,4] → [8,4] | 偶数でないため push なし |
解説ポイント
- 条件付き配列操作
- 偶数だけを選んで2倍にして新しい配列に追加
- 逐次追跡表
- 配列の状態がループごとにどう変化したか一目で分かる
- 応用例
- 数値配列のフィルタリングと変換(map + filter 相当)
- 実務例: API からのデータを条件付きで整形して UI に表示
💡 応用拡張例:
- 元配列を直接変更する(
numbers[i] *= 2など) - 複数条件で異なる操作(偶数は2倍、奇数はそのまま)
- ネスト配列(配列の配列)で同様の条件付き変換


