⊗jsSpOtRHO 271 of 294 menu

Optimalizace opakování náročných operací v JavaScriptu

V předchozí lekci opakovaná volání funkcí ve skutečnosti zaberou velmi málo času a naše optimalizace příliš neušetří. Avšak, vše bude mnohem horší, pokud budeme několikrát volat "náročnou" funkci, která vykonává se dost dlouhou dobu.

Předpokládejme například, že máme funkci, která najde dělitele čísla:

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

Je zřejmé, že tato funkce je dost "náročná". Proto by bylo špatné napsat takový kód:

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

Lepší je samozřejmě provést "náročnou" operaci jednou a výsledek uložit do proměnné, a pak tuto proměnnou použít na potřebných místech:

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

Optimalizujte níže uvedený kód:

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; }
Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικά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
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout