5 of 17 menu

Fout bij het wijzigen van een array-element in JavaScript

Laten we een fout bekijken die optreedt bij het onjuist wijzigen van een array-element. Stel dat we de volgende array hebben:

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

Stel dat we ook een functie hebben die een getal als parameter accepteert en het kwadraat van dat getal teruggeeft:

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

Laten we met een for-of lus onze array doorlopen en op elk van zijn elementen onze functie toepassen:

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

Op dit punt maken beginners vaak een fout. Het probleem is dat het wijzigen van de variabele elem niet leidt tot wijziging van het element in de array zelf. Laten we dit controleren:

console.log(arr); // array is niet veranderd

De array verandert niet omdat de variabele elem een kopie van het element bevat, en geen verwijzing ernaar. Het wijzigen van elem beïnvloedt de kopie, maar niet de array zelf.

Om het probleem op te lossen, moeten de array-elementen zelf worden gewijzigd:

for (let i = 0; i < arr.length; i++) { arr[i] = func(arr[i]); } console.log(arr); // nu is de array veranderd
csuzcnluzlbn