5 of 17 menu

Kļūda, mainot masīva elementu JavaScript

Apskatīsim kļūdu, kas rodas, nepareizi mainot masīva elementu. Pieņemsim, ka mums ir dots šāds massīvs:

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

Pieņemsim, ka mums ir arī funkcija, kas parametru pieņem skaitli un atgriež šī skaitļa kvadrātu:

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

Izmantosim ciklu for-of, lai izietu cauri mūsu masīvam un katram tā elementam piemērotu mūsu funkciju:

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

Šajā vietā iesācēji bieži pieļauj kļūdu. Lieta tāda, ka mainīgā elem mainīšana neizraisa elementa izmaiņas pašā masīvā. Pārliecināsimies par to:

console.log(arr); // masīvs nav mainījies

Masīvs nemainās tāpēc, ka mainīgajā elem glabājas elementa kopija, nevis atsauce uz to. elem mainīšana ietekmē kopiju, bet ne pašu masīvu.

Lai atrisinātu problēmu, ir jāmaina tieši masīva elementi:

for (let i = 0; i < arr.length; i++) { arr[i] = func(arr[i]); } console.log(arr); // tagad masīvs ir mainījies
Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt