⊗jsSpOtLO 272 of 294 menu

Tsükliliste operatsioonide optimeerimine JavaScriptis

Isegi kerge operatsioon, mida korratakse tsüklis korduvalt, võib nõuda palju ressursse.

Vaatame näidet. Olgemel on antud mingi massiiv:

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

Leiame selle massiivi elementide keskmise. Selleks tuleb leida elementide summa ja jagada see elementide arvuga. Olgem, et mingi programmeerija on selle ülesande juba lahendanud järgmisel viisil:

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

Vaatleme sellise lahenduse probleeme. Tehniliselt töötab kood õigesti ja annab õige vastuse. Asi on selles, et matemaatiliselt on õige nii jagada kogu summat elementide arvuga, kui ka jagada iga liidetav elementide arvuga.

Siiski tekib teine ​​probleem. Asi on selles, et me teostame jagamist nii mitu korda, kui palju elemente on meie massiivis. Ja selgub, et teeme palju üleliigseid tehteid, sest jagamise oleks võinud teostada lõpus - ühe korra, jagades kogu leitud summa.

Optimeerime oma koodi:

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

Optimeerige järgmist koodi:

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); } }

Optimeerige järgmist koodi:

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);
Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu