5 of 17 menu

Klaida keičiant masyvo elementą JavaScript

Panagrinėkime klaidą, kylančią netinkamai keičiant masyvo elementą. Tarkime, kad turime tokį masyvą:

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

Tarkime, kad taip pat turime funkciją, kuri parametru priima skaičių ir grąžina to skaičiaus kvadratą:

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

Naudodami ciklą for-of pereikime per mūsų masyvą ir kiekvienam jo elementui pritaikykime mūsų funkciją:

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

Šioje vietoje pradedantieji dažnai daro klaidą. Esmė ta, kad kintamojo elem keitimas nesukelia elemento pakeitimo pačiame masyve. Įsitikinkime tuo:

console.log(arr); // masyvas nepakito

Masyvas nekeičiamas dėl to, kad kintamajame elem saugoma elemento kopija, o ne nuoroda į jį. elem keitimas veikia kopiją, bet ne patį masyvą.

Norint išspręsti problemą, reikia keisti būtent masyvo elementus:

for (let i = 0; i < arr.length; i++) { arr[i] = func(arr[i]); } console.log(arr); // dabar masyvas pasikeitė
Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti