JavaScript配列ループ詳解
JavaScriptにおける配列のループ処理
JavaScriptでは、配列内の要素を一つずつ処理するためにループ処理が用いられます。主な方法として、for
ループ、for...of
ループ、forEach
メソッドがあります。
forループ
最も基本的なループ方法です。インデックスを使用して要素にアクセスします。
const numbers = [1, 2, 3, 4, 5];
for (let i = 0; i < numbers.length; i++) {
console.log(numbers[i]); // 各要素を出力
}
- ループブロック内では、
numbers[i]
を使って現在の要素にアクセスできます。 i++
で各ループの最後にi
をインクリメントします。i < numbers.length
でループ継続条件を設定します。let i = 0
で初期化変数i
を0に設定します。for
キーワードでループを開始します。
for...ofループ
ES6から導入されたループ方法で、配列の要素を直接取り出せます。
const fruits = ["apple", "banana", "orange"];
for (const fruit of fruits) {
console.log(fruit); // 各要素を出力
}
- ループブロック内では、
fruit
に現在の要素が入ります。 fruits
はループ対象の配列です。const fruit
で各要素を代入する変数を宣言します。
forEachメソッド
配列のメソッドで、コールバック関数を各要素に対して実行します。
const colors = ["red", "green", "blue"];
colors.forEach(function(color) {
console.log(color); // 各要素を出力
});
- コールバック関数には、要素の値とインデックス(省略可能)が渡されます。
- 引数としてコールバック関数を渡します。
forEach
メソッドは配列に対して呼び出します。
備考
for...of
ループは一般的にシンプルで読みやすいですが、インデックスが必要な場合はfor
ループの方が便利です。forEach
メソッドはループを途中で中断できないため、条件に応じた処理が必要な場合はfor
ループやfor...of
ループが適しています。
JavaScript配列のループ処理:コード解説
const numbers = [1, 2, 3, 4, 5];
for (let i = 0; i < numbers.length; i++) {
console.log(numbers[i]); // 各要素を出力
}
console.log(numbers[i]);
:現在のインデックスi
に対応する配列要素を出力します。for (let i = 0; i < numbers.length; i++)
:for
ループを開始します。let i = 0
:インデックスi
を 0 に初期化します。i < numbers.length
:i
が配列の長さよりも小さい間ループを続けます。i++
:各ループの後にi
を 1 増やします。
const numbers = [1, 2, 3, 4, 5];
:数値の配列numbers
を定義します。
const fruits = ["apple", "banana", "orange"];
for (const fruit of fruits) {
console.log(fruit); // 各要素を出力
}
console.log(fruit);
:現在の要素fruit
を出力します。for (const fruit of fruits)
:for...of
ループを開始します。const fruit
:各ループで配列の次の要素をfruit
変数に代入します。
const fruits = ["apple", "banana", "orange"];
:文字列の配列fruits
を定義します。
const colors = ["red", "green", "blue"];
colors.forEach(function(color) {
console.log(color); // 各要素を出力
});
colors.forEach(function(color) { ... })
:forEach
メソッドを使用して配列の各要素に対して処理を行います。function(color)
:コールバック関数で、要素の値がcolor
パラメータとして渡されます。
const colors = ["red", "green", "blue"];
:文字列の配列colors
を定義します。
forEach
メソッドはコールバック関数を使い、配列の要素を処理します。for...of
ループはよりシンプルで読みやすく、要素を直接取り出せます。for
ループはインデックスベースで要素にアクセスする伝統的な方法です。
mapメソッド
配列の各要素に対して関数を適用し、新しい配列を生成します。
const numbers = [1, 2, 3, 4, 5];
const doubledNumbers = numbers.map(number => number * 2);
console.log(doubledNumbers); // [2, 4, 6, 8, 1 0]
filterメソッド
条件を満たす要素のみを含む新しい配列を作成します。
const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.filter(number => number % 2 === 0);
console.log(evenNumbers); // [2, 4]
reduceメソッド
配列の要素を累積的に処理し、単一の値を返します。
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
console.log(sum); // 15
- whileループ、do...whileループ:一般的なループ構造ですが、配列処理には通常、他の方法が好まれます。
- for...inループ:主にオブジェクトのプロパティをループするため、配列にはあまり適していません。
どの方法を使うべきか
- インデックスが必要な場合:
for
ループ - 単純に各要素に対して処理を行いたい場合:
forEach
、for...of
- 配列の要素を合計したり、結合したい場合:
reduce
- 新しい配列を作成したい場合:
map
、filter
注意事項
forEach
は元の配列を変更しません。map
、filter
、reduce
は新しい配列を返すため、元の配列は変更されません。
javascript arrays loops