Forループによる配列の反復処理
メニューを表示するにはスワイプしてください
適切な配列操作はループから始まる
すでに配列とは何か、そして配列のインデックスがゼロから始まることを知っています。また、forループでは変数iに任意の値を代入できることも理解しています。例えば、ゼロです。しかし、forループと配列を組み合わせて使うと便利な場合はどうでしょうか?考えてみましょう:
- 配列から要素を取得する場合、
array[index];を使用します; - 変数
iは実質的にインデックスの役割を果たします; - 上記2点を組み合わせると、forループ内で
array[i]構文を使って配列を効率的に操作できると結論付けられます。例を見てみましょう:
12345let array: number[] = [2, 4, 6, 1, 7, 1, 4, 77, 23, 0]; for (let i: number = 0; i < 10; i++) { console.log(`The ${i} element in the array is ${array[i]}`) }
上記のコードで何が起こっているかを分解してみましょう:
- 10個の要素を持つ
number型の配列を作成します; - 配列の各要素を調べて、どのインデックスにあるかを確認することが目的です;
- 配列のインデックスは0から始まるため、変数
iの初期値は0です。また、**上限は配列の長さ(10)**に設定します; iが要素のインデックスであることを利用し、配列の要素を取得してarray[i];で画面に表示します;iが配列内の要素のインデックスであるため、特定の要素がどのインデックスにあるかをすぐに示すことができます。
このようにして配列とやり取りできます。次は別の課題として、この配列の偶数インデックスにある各要素を取得してみましょう:
12345let array: number[] = [2, 4, 6, 1, 7, 1, 4, 77, 23, 0]; for (let i: number = 0; i < 10; i+=2) { console.log(`The ${i} element in the array is ${array[i]}`) }
i+=2(i = i + 2と同じ意味)を使用することで、配列内の偶数インデックスに位置するすべての要素を取得。つまり、要素のインデックスが2で割り切れる必要がある。該当するインデックスは0、2、4、6など。また、iを使うことで、上記の例のように要素のインデックスも表示可能。
ちなみに、配列のサイズを手動で数える必要はない。配列のプロパティarray.lengthを利用可能。例を見てみよう。同時に、配列を末尾から先頭へ(逆順で配列を走査する必要がある場合)ループする方法も確認。
12345let array: number[] = [2, 4, 6, 1, 7, 1, 4, 77, 23, 0]; for (let i: number = array.length - 1; i >= 0; i--) { console.log(`The ${i} element in the array is ${array[i]}`) }
上記の例では、i を array.length - 1 で初期化しています。これは array.length が 10 であり、配列の最後の要素のインデックスが 9 であるためです。ゼロベースのインデックス方式によるものです。
さらに、array.length は初期化だけでなく、条件式にも使用できます。これらすべてに対してさまざまな例を考えることができ、必要なのは少しの想像力と具体的なユースケースです。例えば:
123456789let array: number[] = [2, 4, 6, 1, 7, 1, 4, 77, 23, 0]; for (let i: number = 0; i < array.length; i++) { if ((array.length - i) % 2 == 0) { console.log(`The ${i} element in the array is ${array[i]}`) } else { console.log("[DELETED DATA]") } }
配列の長さからインデックスを引いた値が2で割り切れる場合、その要素を表示します。それ以外の場合は「DELETED DATA」を表示します——これは上司の指示です。
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください