Destrukturalizace

const [a, b] = pole; const { x, y: jine, ...zbytek } = objekt;

Zápis, který z pole nebo objektu vytáhne hodnoty rovnou do proměnných. Používá se při práci s daty z API, v parametrech funkcí i v cyklech.

Parametry

  • [a, b] – podle pozice v poli; vynechané místo [, b] prvek přeskočí.
  • { x } – podle názvu vlastnosti; { x: nazev } uloží do jiné proměnné.
  • = vychozi – hodnota, když prvek chybí nebo je undefined.
  • ...zbytek – zbývající prvky nebo vlastnosti.

Příklady

const [prvni, , treti = 'nic', ...ostatni] = ['a', 'b', undefined, 'd', 'e'];
console.log(prvni, treti, ostatni);
const { nazev, cena: cenaKc, skladem = 0, ...zbytek } = { nazev: 'Káva', cena: 449, kod: 'K1', vaha: 1 };
console.log(nazev, cenaKc, skladem, zbytek);
let x = 1;
let y = 2;
[x, y] = [y, x];
console.log(x, y);

Výstup:

a nic [ 'd', 'e' ]
Káva 449 0 { kod: 'K1', vaha: 1 }
2 1

V parametrech funkce – pojmenované volby s výchozími hodnotami:

function vypis({ stranka = 1, naStranku = 10, razeni = 'datum' } = {}) {
  return `strana ${stranka}, ${naStranku} na stránku, řazení ${razeni}`;
}
console.log(vypis({ stranka: 3 }));
console.log(vypis());

Výstup:

strana 3, 10 na stránku, řazení datum
strana 1, 10 na stránku, řazení datum

Na co si dát pozor

  • Výchozí hodnota se použije jen pro undefined, ne pro null.
  • Destrukturalizace null nebo undefined skončí chybou TypeError – u parametru funkce proto pište výchozí = {}.
  • Přiřazení do existujících proměnných z objektu musí být v závorkách: ({ a, b } = objekt);.

Podpora

Baseline – široce dostupné: ve všech hlavních prohlížečích od srpna 2016, za široce dostupné se považuje od února 2019. Od verze: Chrome 49, Firefox 41, Safari 8; Node.js 6.0.0. Stav k říjnu 2026 (MDN browser-compat-data).

Příbuzné:
Rozkladová syntaxe (...)
Object.entries()
Operátor ?? (nullish coalescing)