Uvod

destruktuiranje niza

Pojam “destruktuiranje” podrazumeva “izvlačenje” podataka iz strukture podataka (objekat ili niz) i pravljenje novih manjih struktura kojima se dodeljuju vrednosti na osnovu “izvučenih” podataka.
Pre ES2015 je bilo neophodno da se napiše kod koji bi vršio destruktuiranje ali srećom sa novim JavaScript standardom je došla i sintaksa koja omogućava da JavaScript kompajler ovaj posao automatski izvršava umesto nas. Ova sintaksa se naziva “destructuring assignment”, i upravo predstavlja to što joj sam naziv govori, dodeljuje vrednosti iz neke strukture novim promenjivima.

Primer
“Manuelno” destruktuiranje

Nova ES6 sintaksa

NAPOMENA: [a,b,c] iz prethodnog primera nove sintakse NIJE NIZ ! ! !
Kada se uglaste zagrade (ili vitičaste) nalaze sa leve strane znaka jednakosti, to ukazuje na patern (šablon) za dodeljivanje promenjivih. One nam omogućavaju da definišemo JavaScript kompajleru kako i pod kojim nazivom varijabli da sačuva destrukturisane vrednosti.

Destrukturiranje niza

Šablon za prihvatanje “viška” podataka

Ukoliko ne znamo broj destruktuiranih vrednosti, a bitna su nam npr. samo prva dva koristićemo rest parametar:

Obratire pažnu da rest parametar mora da bude poslednji u šablonu, inače će kompajler izbaciti grešku!

Manjak vrednosti u odnosu na šablon

Ukoliko ima manje destruktuiranih elemenata u odnosu na šablon, onda se višku promenjivih iz šablona dodeljuje vrednost “undefined”.

Totalni nedostatak vrednosti

Specifičan slučaj je kada struktura koja se destruktuira nema vrednosti tj. kada destruktuiramo strukturu koja nema ni jednu vrednost. Kompajler prijavljuje grešku jer struktura nije iterabilna. Ovakav slučaj se javlja ako funkcija od koje se očekuje iterator vrati iz nekog razlog “null”:

Izbegavanje pucanja programa i neprijatne situacija se rešava na sledeći način:

Defaultne vrednosti

Ukoliko želimo da obezbedimo da promenjiva iz šablona ima vrednost čak ako joj se i ne postoji destruktuirana vrednost, tada u šablonu definišemo defaultnu vrednost:

Zamena promenjivih

Destruktuiranje može da bude korisno i ukoliko želimo da zamenimo vrednosti dve promenjive:

Ignorisanje destruktuiranih vrednosti

Jednostavnim ne definisanjem naziva promenjive u okviru šablona, možemo da ignorišemo destruktuiranu vrednost:

Destruktuiranje ugnježdenih nizova

Destrukturiranje objekta

Dodeljivanje novih imena promenjivih

Definisanje defaultnih vrednosti

Šablon za prihvatanje viška promenjivih

Destruktuiranje ugnježdjenih objekata:

Destruktuiranje objekta for-of iteracijom

Podelite:

Ostavite komentar