6時だョ!!全員集合!!

Rails・JavaScrictを中心にアウトプットします。

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

参考

JavaScript Primerループと反復処理