JavaScriptにおけるスプレッド演算子

ES6では、スプレッドと呼ばれる特別な演算子 ... が導入されました。

スプレッド演算子が配列の前に置かれると、その配列を個々の値に分割し、配列を関数呼び出しに必要なパラメータのセットに変換します。

おそらく説明だけではわかりにくいでしょうから、簡単な例を見てみましょう。3つのパラメータを受け取り、それらの合計を返す関数があるとします:

javascriptfunction func(num1, num2, num3) {
  return num1 + num2 + num3;
}

また、3つの要素を持つ配列があるとします:

javascriptlet arr = [1, 2, 3];

明らかに、この配列を単純に関数のパラメータとして渡すことはできません。このように:

javascriptlet arr = [1, 2, 3];
func(arr);

なぜなら、この場合、配列全体が関数の最初のパラメータに入ってしまい、このパラメータには数値を渡す必要があるからです(他のパラメータも同様です)。

もちろん、次のようにすることもできます:

javascriptlet arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);

しかし、もっと簡単な方法があります - スプレッド演算子を使うことです:

javascriptlet arr = [1, 2, 3];
func(...arr);

変数は必須ではありません - 配列に対して直接スプレッドを適用できます:

javascriptfunc(...[1, 2, 3]);
Задание 1

以下の配列が与えられています:

javascriptlet arr = [1, 2, 3, 4, 5];

また、以下の関数も与えられています:

javascriptfunction func(num1, num2, num3, num4, num5) {
  return num1 + num2 + num3 + num4 + num5;
}

提供された関数を使って、配列要素の合計を求めなさい。