⊗jsSpOtRHO 271 of 294 menu

Raskete operatsioonide kordamise optimeerimine JavaScriptis

Eelmises õppetükis võtsid funktsioonide korduvad väljakutsed tegelikult väga vähe aega ja meie optimeerimine säästis mitte väga palju. Kuid kõik muutub palju hullemaks, kui teeme mitu korda väljakutse "raskele" funktsioonile, mis võtab täitmiseks piisavalt pikka aega.

Oletame näiteks, et meil on funktsioon, mis leiab arvu jagajad:

function getDivisorsSum(num) { let res = 0; for (let i = 1; i <= num; i++) { if (num % i === 0) { res += i; } } return res; }

Ilmselgelt on see funktsioon piisavalt "raske". Seetõttu oleks halb idee kirjutada selline kood:

let num = 123456; if (getDivisorsSum(num) >= 10 && getDivisorsSum(num) <= 100) { console.log('+++'); } else { console.log('---'); }

Paremini on muidugi teha "raske" operatsioon üks kord ja kirjutada tulemus muutujasse, siis kasutada seda muutujat vajalikes kohtades:

let num = 123456; let sum = getDivisorsSum(num); if (sum >= 10 && sum <= 100) { console.log('+++'); } else { console.log('---'); }

Optimeerige allolev kood:

let num = 1233456789; if (getSumSquare(num) >= 10 && getSumSquare(num) <= 100) { console.log('+++'); } else { console.log('---'); } function getSumSquare(num) { let digits = String(num).split(''); let sum = 0; for (let digit of digits) { sum += digit ** 2; } return 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