5 of 17 menu

Eroare la modificarea unui element de matrice în JavaScript

Să luăm în considerare eroarea care apare atunci când un element de matrice este modificat incorect. Să presupunem că avem următoarea matrice:

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

Să presupunem, de asemenea, că avem o funcție care ia un număr ca parametru și returnează pătratul acelui număr:

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

Să parcurgem matricea noastră cu bucla for-of și să aplicăm funcția noastră fiecăruia dintre elementele sale:

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

În acest moment, începătorii fac adesea o greșeală. Cert este că modificarea variabilei elem nu duce la modificarea elementului în matricea în sine. Să ne convingem de acest lucru:

console.log(arr); // matricea nu s-a schimbat

Matricea nu se modifică deoarece variabila elem stochează o copie a elementului, și nu o referință la acesta. Modificarea elem afectează copia, dar nu și matricea în sine.

Pentru a rezolva problema, trebuie să modificați exact elementele matricei:

for (let i = 0; i < arr.length; i++) { arr[i] = func(arr[i]); } console.log(arr); // acum matricea s-a schimbat
Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge