Перейти к основному содержимому

Деструктуризация +

const [a, b, c, d] = [1, 2, 3, 4];
a; // `
b; // 2
c; // 3
d; // 4

// через rest
const [first, ...rest] = [1, 2, 3, 4];

first; // 1
rest; // [2, 3, 4]

Примеры

Пропуск элемента

const [a, , c] = [1, 2, 3];

a; // 1
c; // 3

Значения по умолчанию

const [a = 10, b = 20] = [1];

a; // 1
b; // 20

Деструктуризация результата split (частый кейс)

const [user, domain] = 'name@example.com'.split('@');

user; // "name"
domain; // "example.com"
const obj = { a: 1, b: 2 };

for (const [key, value] of Object.entries(obj)) {
key; // "a", "b"
value; // 1, 2
}

Важное ограничение: нельзя взять “середину” через ...rest Rest-элемент в деструктуризации массива должен быть последним:

// ❌ SyntaxError
// const [a, ...rest, last] = [1, 2, 3, 4];