5 of 17 menu

Napaka pri spreminjanju elementa polja v JavaScript

Oglejmo si napako, ki se pojavi pri nepravilni spremembi elementa polja. Recimo, da imamo naslednje polje:

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

Recimo, da imamo tudi funkcijo, ki kot parameter sprejme število in vrne kvadrat tega števila:

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

S pomočjo zanke for-of iterirajmo skozi naše polje in za vsak element uporabimo našo funkcijo:

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

Na tej točki začetniki pogosto naredijo napako. Bistvo je v tem, da spreminjanje spremenljivke elem ne povzroči spremembe elementa v samem polju. Preverimo:

console.log(arr); // polje se ni spremenilo

Polje se ne spreminja, ker v spremenljivki elem shrani kopijo elementa, ne reference nanj. Spreminjanje elem vpliva na kopijo, ne pa na samo polje.

Za rešitev problema je treba spreminjati natančno elemente polja:

for (let i = 0; i < arr.length; i++) { arr[i] = func(arr[i]); } console.log(arr); // zdaj se je polje spremenilo
Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni