Gabimi i ndryshimit të elementit të grupit në JavaScript
Le të shqyrtojmë gabimin që lind kur ndryshohet gabimisht një element i grupit. Le të themi se kemi këtë grup:
let arr = [1, 2, 3, 4, 5];
Le të themi gjithashtu se kemi një funksion që merr një numër si parametër dhe kthen katrorin e atij numri:
function func(num) {
return num ** 2;
}
Le të përdorim një cikël for-of
për të përsëritur nëpër grupin tonë dhe të aplikojmë funksionin tonë
në secilin prej elementëve të tij:
for (let elem of arr) {
elem = func(elem);
}
Këtu fillestarët shpesh bëjnë një gabim.
Çështja është se ndryshimi i ndryshores
elem nuk çon në ndryshimin e elementit
në vetë grupin. Le ta verifikojmë këtë:
console.log(arr); // grupi nuk ndryshoi
Grupi nuk ndryshon sepse
në ndryshoren elem ruhet
një kopje e elementit, dhe jo një referencë për të.
Ndryshimi i elem ndikon në kopjen,
por jo në vetë grupin.
Për të zgjidhur problemin duhet të ndryshohen pikërisht elementët e grupit:
for (let i = 0; i < arr.length; i++) {
arr[i] = func(arr[i]);
}
console.log(arr); // tani grupi ndryshoi