2021年11月1日 JavaScript (JS Primer) ループと反復処理(2)
配列における反復処理
forEachメソッドを使うことで、配列の全ての要素に対して反復処理を実行できます。引数で渡したコールバック関数を、全ての要素に対して実行します。
let array = ["10月","11月","12月"]; array.forEach((month) => { console.log(month); });
forEachメソッドは、繰り返し条件や変数iを定義せずに済むので、シンプルに反復処理を書けます。forEachメソッドに戻り値は存在しません。
forEachメソッドはクレーン的存在です。
🏗
[1,2,3] 🏗 引数
配列から要素を一つずつ釣り上げて引数に入れるのがforEachです。
break文
break文は処理中の文から抜けて次の文へ移行する制御文です。 while、do-while、forの中で使い、処理中のループを抜けて次の文へ制御を移します。
// 引数の`num`が偶数ならtrueを返す"isEven関数"です。 function isEven(num) { return num % 2 === 0; } // 引数の`numbers`に偶数が含まれているならtrueを返す関数です。 function isEvenIncluded(numbers) { let isEvenIncluded = false; // 初期値をfalseとします。 for (let i = 0; i < numbers.length; i++) { const num = numbers[i]; // numにiの数値に対応するインデックス番号の値が代入されます。 // iが2になった時に10が代入されてif文が成立します。 if (isEven(num)) { isEvenIncluded = true; // trueを再代入します。 break; // break文でループを抜けて次の処理に移行します。 } } return isEvenIncluded; // ここで完全に処理が完了します。 } const array = [1, 5, 10, 15, 20]; console.log(isEvenIncluded(array)); // => true
上記の場合、breakでループ処理を終わらせた上で、returnで返していますが、 breakの代わりにreturn文を使えば、isEvenIncludedを変数として宣言する必要がなくなるため、より簡潔に書くことができます。
function isEven(num) { return num % 2 === 0; } function isEvenIncluded(numbers) { for (let i = 0; i < numbers.length; i++) { const num = numbers[i]; if (isEven(num)) { return true; } } return false; } const numbers = [1, 5, 10, 15, 20]; console.log(isEvenIncluded(numbers)); // => true