5 of 17 menu

Chyba při změně prvku pole v JavaScriptu

Pojďme se podívat na chybu, která vzniká při nesprávné změně prvku pole. Předpokládejme, že máme následující pole:

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

Předpokládejme také, že máme funkci, která přijímá číslo jako parametr a vrací druhou mocninu tohoto čísla:

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

Zkusme pomocí cyklu for-of projít naše pole a na každý z jeho prvků aplikovat naši funkci:

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

Na tomto místě začátečníci často dělají chybu. Problém je v tom, že změna proměnné elem nevede ke změně prvku v samotném poli. Přesvědčme se o tom:

console.log(arr); // pole se nezměnilo

Pole se nemění proto, že proměnná elem obsahuje kopii prvku, ne odkaz na něj. Změna elem ovlivní kopii, ale ne samotné pole.

K vyřešení problému je potřeba měnit přímo prvky pole:

for (let i = 0; i < arr.length; i++) { arr[i] = func(arr[i]); } console.log(arr); // nyní se pole změnilo
Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout