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हिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել