5 of 17 menu

Greška pri izmeni elementa niza u JavaScript-u

Hajde da razmotrimo grešku koja se javlja pri nepravilnoj izmeni elementa niza. Pretpostavimo da imamo sledeći niz:

let arr = [1, 2, 3, 4, 5];

Pretpostavimo da takođe imamo funkciju koja prima broj kao parametar i vraća kvadrat tog broja:

function func(num) { return num ** 2; }

Hajde da pomoću petlje for-of prođemo kroz naš niz i na svaki od njegovih elemenata primenimo našu funkciju:

for (let elem of arr) { elem = func(elem); }

Na ovom mestu početnici često prave grešku. Stvar je u tome što promena promenljive elem ne dovodi do promene elementa u samom nizu. Uverimo se u ovo:

console.log(arr); // niz se nije promenio

Niz se ne menja zbog toga što u promenljivoj elem se čuva kopija elementa, a ne referenca na njega. Promena elem utiče na kopiju, ali ne i na sam niz.

Za rešavanje problema je potrebno menjati upravo elemente niza:

for (let i = 0; i < arr.length; i++) { arr[i] = func(arr[i]); } console.log(arr); // sada se niz promenio
Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij