В предыдущем посте мы встретили волшебные три точки … псевдоним оператор распространения. Эти точки стоит изучить, прежде чем мы перейдем к картам.
Основная цель оператора распространения - распределить элементы массива или повторяемого объекта.
Попробуйте этот код:
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}`);
Надеюсь, вам понравятся эти точки так же, как и мне.