Kesalahan Mengubah Elemen Array di JavaScript
Mari kita bahas kesalahan yang muncul saat mengubah elemen array dengan tidak benar. Misalkan kita memiliki array seperti ini:
let arr = [1, 2, 3, 4, 5];
Misalkan kita juga memiliki sebuah fungsi yang menerima sebuah angka sebagai parameter dan mengembalikan kuadrat dari angka tersebut:
function func(num) {
return num ** 2;
}
Mari kita gunakan perulangan for-of
untuk mengulang melalui array kita dan
terapkan fungsi kita ke setiap elemennya:
for (let elem of arr) {
elem = func(elem);
}
Di sinilah pemula sering melakukan
kesalahan. Masalahnya adalah, mengubah variabel
elem tidak menyebabkan perubahan pada elemen
dalam array itu sendiri. Mari kita buktikan:
console.log(arr); // array tidak berubah
Array tidak berubah karena
variabel elem menyimpan
salinan elemen, bukan referensi ke elemen tersebut.
Mengubah elem mempengaruhi salinannya,
tetapi tidak pada array itu sendiri.
Untuk menyelesaikan masalah ini, kita perlu mengubah elemen array itu sendiri:
for (let i = 0; i < arr.length; i++) {
arr[i] = func(arr[i]);
}
console.log(arr); // sekarang array telah berubah