Wyszukaj / o blogu

JavaScript - destrukturyzacja tablic i obiektów

Opublikowano ndz 12 kwietnia 2020 w javascript • 1 min read

Destrukturyzacja tablic

Destrukturyzacja tablic pozwala na przypisanie do zmiennych tworzących tablice kolejne elementy zawarte w tablicy (właściwości tablicy)

let droids = ['r2d2', 'c3po']
let [droid1, droid2] = droids
console.log(droid2)
>> c3po

zamiast

let droid2 = droids[1]

Istnieje również możliwość omijania pewnych elementów w trakcie destrukturacji poprzez pozostawienie wolnej spacji pomiędzy przecinkami

```JavaScript
  let droids = ['r2d2', 'c3po', 'bb8']
  let [droid1, , droid3] = droids
  console.log(droid3)
  >> bb8````

Przy pomocy operatora spread można również wydzielić jeden element zwracając z reszty tablicę

```JavaScript
  let droids = ['r2d2', 'c3po', 'bb8']
  let [droid1, ...droid2] = droids
  console.log(droid2)
  >> ['c3po', 'bb8']```
  console.log(droid1)
  >> r2d2````

Destrukturyzacja obiektów

const protocolDroid = {
    name:"ME-8D9",
    occupation:"Protocol droid",
    height:"1.72",
    homeWorld:"Takodana"
    }

let {name, homeWorld} =  protocolDroid

console.log(name)
>> ME-8D9
console.log(homeWorld)
>> Takodana

Pozwala to na wykorzystanie w funkcji tylko tych elementów obiektu, które są nam potrzebne

const createDroid = ({ name, homeWorld }) => {
  console.log(name, homeWorld);
};

createDroid(protocolDroid);

const protocolDroid = {
    name:"ME-8D9",
    occupation:"Protocol droid",
    height:"1.72",
    homeWorld:"Takodana"
    address: {
      city: "Takodana"
      }
    }

const {name, address: {city}} = protocolDroid;

console.log(city)
>> Takodana

Istnieje również możliwość nadpisania przypisania wartości do zmiennej/nadawanie zmiennej nowej wartości

const droid = { name: "ME-8D9" };
const { name: protocolDroid } = droid;
console.log(protocolDroid); // >> ME-8D9