Menu
Coddy logo textTech

Деструктуризация массивов

Часть раздела Логика и поток путешествия по JavaScript на Coddy — урок 47 из 65.

Деструктуризация массива — это удобный способ извлечения нескольких значений из массива и их присваивания переменным в одном выражении. Она использует синтаксис, который зеркально отражает структуру литерала массива.

Базовый синтаксис:

const [a, b, c] = [1, 2, 3];
console.log(a); // 1
console.log(b); // 2
console.log(c); // 3

Вы можете пропускать элементы:

const [a, , c] = [1, 2, 3];
console.log(a); // 1
console.log(c); // 3

Вы можете использовать остаточные параметры (rest parameters) для захвата оставшихся элементов:

const [a, ...rest] = [1, 2, 3, 4, 5];
console.log(a);    // 1
console.log(rest); // [2, 3, 4, 5]

Вы можете указать значения по умолчанию:

const [a, b, c = 3] = [1, 2];
console.log(c); // 3
challenge icon

Задание

Легко

Создайте функцию с названием analyzeArray, которая принимает массив в качестве аргумента. Функция должна использовать деструктуризацию массива для извлечения первого, второго и последнего элементов массива. Она должна возвращать объект со следующими свойствами:

  • first: Первый элемент массива
  • second: Второй элемент массива
  • last: Последний элемент массива
  • restLength: Количество оставшихся элементов в массиве

Если какой-либо из этих элементов отсутствует, используйте значения по умолчанию null.

Шпаргалка

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

const [a, b, c] = [1, 2, 3];
console.log(a); // 1
console.log(b); // 2
console.log(c); // 3

Пропускайте элементы, оставляя пустые места:

const [a, , c] = [1, 2, 3];
console.log(a); // 1
console.log(c); // 3

Используйте rest-параметры для захвата оставшихся элементов:

const [a, ...rest] = [1, 2, 3, 4, 5];
console.log(a);    // 1
console.log(rest); // [2, 3, 4, 5]

Указывайте значения по умолчанию для отсутствующих элементов:

const [a, b, c = 3] = [1, 2];
console.log(c); // 3

Попробуйте сами

function analyzeArray(arr) {
  // Напишите свой код здесь
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и поток