5 of 17 menu

Chyba pri zmene prvku poľa v JavaScripte

Poďme si rozobrať chybu, ktorá vzniká pri nesprávnej zmene prvku poľa. Majme takéto pole:

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

Majme tiež funkciu, ktorá ako parameter prijíma číslo a vráti druhú mocninu tohto čísla:

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

Skúsme pomocou cyklu for-of prejsť naše pole a na každý z jeho prvkov aplikovať našu funkciu:

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

Na tomto mieste začiatočníci často robia chybu. Problém je v tom, že zmena premennej elem nevedie k zmene prvku v samotnom poli. Presvedčme sa o tom:

console.log(arr); // pole sa nezmenilo

Pole sa nemení preto, že v premennej elem je uložená kópia prvku, nie referencia naň. Zmena elem vplýva na kópiu, ale nie na samotné pole.

Na vyriešenie problému je potrebné meniť priamo prvky poľa:

for (let i = 0; i < arr.length; i++) { arr[i] = func(arr[i]); } console.log(arr); // teraz sa pole zmenilo
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
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť