at backyard

Color my life with the chaos of trouble.

JavaScriptで動的に関数の引数を与える場合はスプレッド構文を使えばよかった

最近、こういう使い方もできるのかと学んだので備忘録がてら残しておこうと思ったのだが、書き始めてからMDNを参照したら、自分がこれから書こうと思ったそのままの例が載っていて、自分の知識の無さに幻滅した次第。

developer.mozilla.org

せっかく書き出したのでこちらのポストはそのまま公開しておくが、まあJavaScriptの基本でした。

以下、本文。

const arr = [1,2,3]
console.log(...arr)

このコードを実行すると、実行結果は下記となる。

1 2 3

で、下記のようなコードがあった場合、sum関数の返り値は6となる。

function sum(n1,n2,n3) {
  if(n1 && n2 && n3) {
    return n1 + n2 + n3;
  } else if (n1 && n2) {
    return n1 + n2;
  } else {
    return "足し算をするための引数が足りません";
  }
}


const arr = [1,2,3]
console.log(...arr)
console.log(sum(...arr))

配列をスプレッド構文で展開した場合 1 2 3 となるが、これはそのまま関数の引数として良さげに渡すことが可能なようだ。

これを使えば動的に引数を関数に渡すことができると思ったのだが、最初にも書いたとおり、JavaScriptの基本だった。
「こういう使い方もできるんだ!」とドヤってポストしなくてよかったと思った。