Spread - три крапки

В EcmaScript6 добавлена конструкція-префікс "три крапки", що означає "решта аргументів".

У цієї конструкції багато варіантів застосувань. Розглянемо один з них:

function test(a, b, ...c) {
  console.log(a, b);
  console.dir(c);
}
test(1, 2, 3, 4, 5, 6, 7);

Дослідіть вивід в консоль змінної c.

У змінній c зберігається справжній масив зі всіх аргументів, що йдуть після a та b.

Інший спосіб застосування - розгортання масива у окремі аргументи:

function calc(a, b, c) { return a * b + c; }

var a = [2, 5, 8];
console.log(calc(a[0], a[1], a[2]));
console.log(calc(...a));

Завдання.

Створіть функцію calc, що повертає суму усіх заданих їй аргументів. Застосуйте метод forEach.

Домашнє завдання.

  1. Добавте до гарбуза властивість "ціна за кілограм" та метод, який би обчислював вартість гарбуза.
  2. Створіть метод, який би повертав копію гарбуза. Можна застосувати не глибоке копіювання.
    Створіть масив з п'яти гарбузів, використовуючи даний метод копіювання.
  3. Задайте всім гарбузам випадкову вагу від 5 до 20 кг.
    Виведіть в консоль номер гарбуза та його ціну.
  4. Виведіть в консоль вагу всіх гарбузів: 12 кг; 19 кг; 11 кг; 16 кг; 18 кг Спробуйте обійтися однією командою: всі дії вписати в дужки: console.log(...);
  5. Створіть функцію, що отримує у якості аргументів марки автомобілів і виводить їх в консоль в одну строку через кому та пробіл.
  6. Створіть функцію, що отримує у якості аргументів гарбузи і виводить в кнсоль в стовбчик їх ціну. Передайте в функцію масив гарбузів.