JavaScriptの学習で学んだことをメモ感覚で残しています。
問題
以下の配列から、すべての値を2倍にして新しい配列を作り、結果をコンソールに表示してください。
var numbers = [1, 2, 3, 4, 5];
// ここで新しい配列を作成
console.log(doubledNumbers); // [2, 4, 6, 8, 10]
for文(繰り返し)
for (初期化; 条件; 更新) {
処理
}
- 初期化: ループの最初に実行されるコード。例: var i = 0。
- 条件: この条件が真の間、ループを繰り返す。
- 更新: 1回のループ処理が終わるたびに実行されるコード。例: i++。
解答
var numbers = [1, 2, 3, 4, 5];
var doubledNumbers = []; // 新しい配列を初期化
// 配列をループして各値を2倍にする
for (var i = 0; i < numbers.length; i++) {
doubledNumbers.push(numbers[i] * 2); // 値を2倍にして追加
}
console.log(doubledNumbers); // [2, 4, 6, 8, 10]
解説
- numbers[i] を取得して、2倍にする。
- 新しい配列 doubledNumbers にその結果を push(追加)する。
for 文の構成
for 文は3つの部分で構成され、順に動作します:
- 初期化 (var i = 0;)
- ループの最初に1回だけ実行されるコードです。
- var i = 0; はループカウンターを初期化します。
- i は インデックス(添字) を表します。
- 配列の最初の要素にアクセスするために、インデックスを 0 から開始します。
- 条件 (i < numbers.length;)
- 各ループの開始時に評価されます。
- 条件が 真(true) ならループ内の処理が実行され、 偽(false) ならループを終了します。
- numbers.length は配列の長さ(要素数)を返します。
- 例えば、numbers = [1, 2, 3, 4, 5] なら numbers.length は 5 です。
- インデックスが配列の範囲内に収まるように、i < numbers.length という条件を指定します。
- 更新 (i++)
- 各ループの最後に実行されるコードです。
- i++ はカウンター i を1つ増やします。
- 最初のループでは i が 0、次は 1、その次は 2 というように増加します。
動作の流れ(1つずつ説明)
配列: numbers = [1, 2, 3, 4, 5]
- 1回目のループ:
- 初期化: i = 0
- 条件チェック: 0 < 5 → 真
- 処理実行: numbers[0] を操作(値は 1)
- 更新: i++ → i = 1
- 2回目のループ:
- 条件チェック: 1 < 5 → 真
- 処理実行: numbers[1] を操作(値は 2)
- 更新: i++ → i = 2
- ...以降同様の処理を繰り返す
- 終了条件:
- i = 5 になったとき、条件 5 < 5 は 偽 となり、ループ終了。
メモ
var doubledNumbers = []; // 新しい配列を初期化
[]が空で初期化の意味
配列に対して .length を使うと、配列内の要素数を取得できる。
i++ は i = i + 1と同じ意味
- numbers[i]:配列の要素を1つずつ取り出す。
- * 2:その要素を2倍する。
- doubledNumbers.push(...):結果を新しい配列 doubledNumbers に追加する。