JavaScriptにおけるスプレッド演算子
ES6では、スプレッドと呼ばれる特別な演算子 ... が導入されました。
スプレッド演算子が配列の前に置かれると、その配列を個々の値に分割し、配列を関数呼び出しに必要なパラメータのセットに変換します。
おそらく説明だけではわかりにくいでしょうから、簡単な例を見てみましょう。3つのパラメータを受け取り、それらの合計を返す関数があるとします:
function func(num1, num2, num3) {
return num1 + num2 + num3;
}
また、3つの要素を持つ配列があるとします:
let arr = [1, 2, 3];
明らかに、この配列を単純に関数のパラメータとして渡すことはできません。このように:
let arr = [1, 2, 3];
func(arr);
なぜなら、この場合、配列全体が関数の最初のパラメータに入ってしまい、このパラメータには数値を渡す必要があるからです(他のパラメータも同様です)。
もちろん、次のようにすることもできます:
let arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);
しかし、もっと簡単な方法があります - スプレッド演算子を使うことです:
let arr = [1, 2, 3];
func(...arr);
変数は必須ではありません - 配列に対して直接スプレッドを適用できます:
func(...[1, 2, 3]);
以下の配列が与えられています:
let arr = [1, 2, 3, 4, 5];
また、以下の関数も与えられています:
function func(num1, num2, num3, num4, num5) {
return num1 + num2 + num3 + num4 + num5;
}
提供された関数を使って、配列要素の合計を求めなさい。