NACの勉強の経過を綴るところ

個人的なコードの勉強

【JS】引数の数が決まっていない関数の定義

JS逆引きレシピ本、123(P199)。


ユーザー定義関数に引数を渡す場合に、引数の数が変動するような関数の書き方。


例えば、次のスクリプトは、渡された引数の総和を返す関数である。

function sumTotal( ...nums ) {
    let result = 0;
    for( let num of nums) {
        result += num;
    }
    return result;
}

console.log(sumTotal(1 , 3 , 5 , 7));  // 16


分割代入構文のところ
【JS】分割代入構文 - NACの勉強の経過を綴るところ
にも書いた、「...演算子」を使う。
引数に「...nums」と書くと、渡ってきた個数不明の引数が、numsという配列に格納されるわけだ。
あとは、for文で配列の中身をひとつずつ取り出して足し合わせていけばいい。


今回は総和を求めるスクリプトだったので、すべて並列な意味合いを持つ数値型だったが、「配列の中身に入る」というロジックさえ憶えておけば、構文上はどんな引数がどんな形で渡ってきても問題なく処理できる。
この方法を記憶に留めておけば、何かの機会に他の使い方に発展できそうである。