В предыдущем посте мы встретили волшебные три точки псевдоним оператор распространения. Эти точки стоит изучить, прежде чем мы перейдем к картам.

Основная цель оператора распространения - распределить элементы массива или повторяемого объекта.

Попробуйте этот код:

const log = x => console.log(x);
const myFunction = (a, b, c) => {
  log(`a: ${a}, b: ${b}, c: ${c}`)
};
const myArr1 = [1, 2, 3];
myFunction(...myArr1);

Как видите, каждый элемент массива передается в качестве аргумента функции. Но мы можем сделать больше! Несколько примеров ниже.

Любой аргумент в списке может использовать синтаксис распространения:

const log = x => console.log(x);
const myFunction = (a, b, c) => {
  log(`a: ${a}, b: ${b}, c: ${c}`)
};
const myArr2 = [1, 2];
myFunction(...myArr2,69);

Копирование одного массива во второй или их объединение:

const log = x => console.log(x);
const myArr3 = ['Lorem', 'Ipsum', 'Sit', 'Amet'];
const myArr4 = [...myArr3];
log(myArr4);
const myArr5 = [2, 3, 5, 7, 11, ...myArr3];
log(myArr5);
myArr5.unshift(...myArr3);
log(myArr5);

Или мы можем использовать это для деконструкций:

const log = x => console.log(x);
const [a, b, ...rest] = [1, 2, 3, 4, 5, 6, 7];
log(`a: ${a}, b: ${b}, rest: ${rest}`);

Надеюсь, вам понравятся эти точки так же, как и мне.