0Pricing
JavaScript Academy · Урок

Rest и spread — идиоматичные массивы и объекты

Собирайте остальные значения и свойства, клонируйте и объединяйте данные с помощью spread и избегайте скрытых мутаций с помощью простых приёмов

«Rest и spread — идиоматичные массивы и объекты» — бесплатный урок JavaScript Academy на CoddyKit. Это урок 2 из 2. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения JavaScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс JavaScript Academy содержит 2 уроков всего.

Введение

Цель: использовать rest для сбора дополнительных элементов и оператор ... для копирования или объединения.

  • Оператор ... для массивов и объектов
  • rest массива (начало и хвост)
  • rest объекта (исключение некоторых ключей)
  • Изменение и копирование
Rest и spread — идиоматичные массивы и объекты — иллюстрация 1

Основы оператора ... для массивов

[...arr] копирует массив; объединяйте массивы, распределяя их элементы в новом массиве.

// Array spread creates a shallow copy and merges arrays
const a = [1, 2];
const b = [3, 4];

const clone = [...a];
const merged = [...a, ...b];

console.log("a:", a);
console.log("clone:", clone);
console.log("merged:", merged);
Rest и spread — идиоматичные массивы и объекты — иллюстрация 2

Шаблон rest массива

Элемент rest (…tail) собирает оставшиеся элементы в новый массив.

// Array rest collects the remaining items
const nums = [10, 20, 30, 40];

const [head, ...tail] = nums;

console.log("head:", head);
console.log("tail:", tail);
Rest и spread — идиоматичные массивы и объекты — иллюстрация 3

Основы оператора ... для объектов

Объединение объектов зависит от порядка: более поздние операторы ... перезаписывают более ранние ключи.

// Object spread copies and merges; later keys win
const base = { theme: "light", compact: false };
const override = { compact: true };

const copy = { ...base };
const merged = { ...base, ...override };

console.log("copy:", copy);
console.log("merged:", merged);
Rest и spread — идиоматичные массивы и объекты — иллюстрация 4

Шаблон rest объекта

Используйте { a, ...rest }, чтобы получить несколько свойств, а остальные сохранить вместе.

// Object rest collects remaining properties
const user = { id: 7, name: "Ayla", role: "admin" };

const { id, ...publicInfo } = user;

console.log("id:", id);
console.log("publicInfo:", publicInfo);
Rest и spread — идиоматичные массивы и объекты — иллюстрация 5

Как избежать изменения данных с помощью копии

Создавайте новый объект при изменении значений; это понятнее и безопаснее, чем изменение общих данных.

// Copy instead of mutating original data
const settings = { sound: true, volume: 5 };

// Mutating version (avoid in shared state)
// settings.volume = 6;

// Non-mutating: create an updated copy
const updated = { ...settings, volume: 6 };

console.log("settings:", settings);
console.log("updated:", updated);
Rest и spread — идиоматичные массивы и объекты — иллюстрация 6

Проверка rest объекта

Быстрая проверка: rest объекта.

Rest и spread — идиоматичные массивы и объекты — иллюстрация 7

Повторение

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

Rest и spread — идиоматичные массивы и объекты — иллюстрация 8

Часто задаваемые вопросы

Урок «Rest и spread — идиоматичные массивы и объекты» бесплатный?

Да — полный текст урока «Rest и spread — идиоматичные массивы и объекты» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс JavaScript Academy, подпишись на CoddyKit PRO. Курс JavaScript Academy содержит 2 уроков всего.

Чему я научусь в уроке «Rest и spread — идиоматичные массивы и объекты»?

Собирайте остальные значения и свойства, клонируйте и объединяйте данные с помощью spread и избегайте скрытых мутаций с помощью простых приёмов Ты практикуешь JavaScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать JavaScript Academy?

Предыдущий опыт не требуется. JavaScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 2.

Сколько времени занимает урок «Rest и spread — идиоматичные массивы и объекты»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке JavaScript Academy?

Да. Каждый урок JavaScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Основы деструктуризации массивов и объектов
  2. Rest и spread — идиоматичные массивы и объекты
← Назад к JavaScript Academy