⊗jsSpOtRHO 271 of 294 menu

Sunkios operacijos kartojimo optimizavimas JavaScript

Ankstesnėje pamokoje pakartotiniai funkcijų iškvietimai užima labai mažai laiko ir mūsų optimizacija sutaupys nedaug. Tačiau, viskas bus daug blogiau, jei kelis kartus iškviesime "sunkią" funkciją, kuri vykdoma pakankamai ilgai.

Tarkime, pavyzdžiui, kad turime funkciją, kuri randa skaičiaus daliklius:

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

Akivaizdu, kad ši funkcija yra pakankamai "sunki". Todėl bloga idėja būtų parašyti tokį kodą:

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

Žinoma, geriau atlikti "sunkų" veiksmą vieną kartą ir rezultatą įrašyti į kintamąjį, o tada naudoti tą kintamąjį reikiamose vietose:

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

Optimizuokite žemiau pateiktą kodą:

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; }
Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti