⊗jsSpOtLO 272 of 294 menu

Аптымізацыя цыклічных аперацый у JavaScript

Нават лёгкая аперацыя, шматразова паўтораная ў цыкле, можа адняць шмат рэсурсаў.

Давайце паглядзім на прыкладзе. Хай у нас дадзены некаторы масіў:

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

Давайце знойдзем сярэдняе ад элементаў гэтага масіва. Для гэтага трэба знайсці суму элементаў і падзяліць яе на колькасць. Хай некі праграміст ужо вырашыў гэтую задачу наступным чынам:

let avg = 0; for (let elem of arr) { avg += elem / arr.length; } console.log(avg);

Давайце разгледзім праблемы такога рашэння. Тэхнічна код працуе правільна і дае правільны адказ. Справа ў тым, што матэматычна карэктна як дзяліць усю суму на колькасць, так і дзяліць кожнае з складнікаў на колькасць.

Аднак, узнікае іншая праблема. Справа ў тым, што мы будзем выконваць дзяленне столькі разоў, колькі элементаў у нашым масіве. І атрымліваецца, што мы робім вялікую колькасць лішніх аперацый, бо дзяленне можна было б выканаць у канцы - адзін раз, падзяліўшы ўсю знойдзеную суму.

Давайце аптымізуем наш код:

let sum = 0; for (let elem of arr) { sum += elem; } let avg = sum / arr.length; console.log(avg);

Аптымізуйце наступны код:

for (let i = 1900; i <= 2100; i++) { let curr = new Date; let date = new Date(i, curr.getMonth(), curr.getDate()); if (curr.getDay() === date.getDay()) { console.log(date); } }

Аптымізуйце наступны код:

let obj = {a: 10, b: 20, c: 30, d: 40, e: 50}; let sum = 0; for (let key in obj) { if (String(obj[key])[0] === '1' || String(obj[key])[0] === '2') { sum += obj[key]; } } console.log(sum);
Беларуская
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 для працы сайта, аналітыкі і персаналізацыі. Апрацоўка дадзеных адбываецца згодна Палітыкай канфідэнцыяльнасці.
прыняць усе наладзіць адхіліць