</> Praktum

Главная / JavaScript / Операторы spread и rest

JavaScript · данные

Операторы spread и rest

Три точки ... имеют два близких применения. Spread раскрывает коллекцию на отдельные значения, а rest собирает оставшиеся значения в одну переменную.

Копирование и объединение массивов

Spread создаёт новый поверхностный массив. Вложенные объекты при этом остаются общими ссылками.

const first = [1, 2];
const second = [3, 4];
const all = [...first, ...second];
const copy = [...all];

Новый объект

Поля более позднего объекта перекрывают предыдущие. Такой приём удобен для неизменяемого обновления состояния.

const user = { name: 'Лена', theme: 'light' };
const updated = { ...user, theme: 'dark' };

Rest-параметры

В объявлении функции три точки собирают оставшиеся аргументы в обычный массив. Rest должен быть последним параметром.

function sum(...numbers) {
  return numbers.reduce((total, number) => total + number, 0);
}
sum(2, 4, 6);

Частые ошибки

Практика

Объедини два массива тем, затем создай новую версию объекта настроек, изменив только поле theme. Проверь, что исходный объект не изменился.

Связанные темы

Деструктуризация · reduce()

Ещё в разделе JavaScript