⊗jsSpOtRHO 271 of 294 menu

Optymalizacja powtarzania ciężkich operacji w JavaScript

W poprzedniej lekcji powtórne wywołania funkcji faktycznie zajmują bardzo mało czasu i nasza optymalizacja zaoszczędzi nie bardzo wiele. Jednakże, wszystko będzie znacznie gorzej, jeśli będziemy kilka razy wykonywać wywołanie "ciężkiej" funkcji, która wykonuje się dość długo.

Załóżmy, na przykład, że mamy funkcję, która znajduje dzielniki liczby:

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

Oczywiście, ta funkcja jest dość "ciężka". Dlatego złym pomysłem byłoby napisanie takiego kodu:

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

Lepiej, oczywiście, wykonać "ciężką" operację raz i wynik zapisać w zmiennej, a potem używać tej zmiennej w potrzebnych miejscach:

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

Zoptymalizuj poniższy 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; }
Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć