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çeЎзбекOʻzbekTiếng Việt
Мы выкарыстоўваем cookie для працы сайта, аналітыкі і персаналізацыі. Апрацоўка дадзеных адбываецца згодна Палітыкай канфідэнцыяльнасці.
прыняць усе наладзіць адхіліць