5 of 17 menu

JavaScriptда массив элементини ўзгартиришдаги хатолик

Келгила, массив элементини нотўғри ўзгартириш натижасида юз берадиган хатоликни кўриб чиқайлик. Айтинг, бизда шунақа массив берилган бўлсин:

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

Айтинг, бизда шунингдек, параметр сифатида сонни қабул қилиб ва ўша соннинг квадратини қайтарувчи функция мавжуд:

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

Келгила, for-of цикли ёрдамида массивимизни айланиб чиқайлик ва унинг ҳар бир элементига функциямизни қўллаймиз:

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

Бўшлаганар бу ерда тез-тез хатога йўл қўйишади. Гал шундаки, elem ўзгарувчисининг қийматини ўзгартириш массивнинг ўзидаги элементни ўзгартирмайди. Бунингга ишонч ҳосил қилайлик:

console.log(arr); // массив ўзгармади

Массив ўзгармаслигининг сабаби шундаки, elem ўзгарувчисида элементнинг нусхаси сақланади, унинг ўзига ҳавола эмас. elem ни ўзгартириш нусхага таъсир қилади, лекин массивнинг ўзига эмас.

Муаммони ҳал қилиш учун массивнинг элементларини айнан ўзгартириш керак:

for (let i = 0; i < arr.length; i++) { arr[i] = func(arr[i]); } console.log(arr); // энди массив ўзгарди
Ўзбек
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш