JavaScript-da massiw elementini üýtgetmekde ýalňyşlyk
Massiw elementini nädogry üýtgetmekden emele gelen ýalňyşlygy seredeliň. Bizde ýöne şeýle massiw bar bolsun:
let arr = [1, 2, 3, 4, 5];
Bizde şeýle hem, parametri hökmünde san kabul edýän we şol sanyň kwadratyny yzygiderlýän funksiýa bar bolsun:
function func(num) {
return num ** 2;
}
Geliň for-of sikly bilen
biziň massiwimizi aýlanyp çykaýalyň
we onuň her bir elementine
biziň funksiýamyzy ulanyň:
for (let elem of arr) {
elem = func(elem);
}
Başlanýanlar köplenç şu ýerde ýalňyşlyk
edýärler. Sebäbi, elem üýtgeýjisini
üýtgetmek, massiwdäki elementiň özüni
üýtgetmäge getirýän däl. Muny anyklaýalyň:
console.log(arr); // massiw üýtgemändir
Massiw üýtgemeýär, sebäbi elem
üýtgeýjisinde elementiniň nusgasy
saklanýar, onuň salgysy däl.
elem-i üýtgetmek nusgasyň
özüne täsir edýär, ýöne massiwiň
özüne däl.
Meseläni çözmek üçin massiwiň elementleriniň özlerini üýtgetmeli:
for (let i = 0; i < arr.length; i++) {
arr[i] = func(arr[i]);
}
console.log(arr); // indi massiw üýtgedi