⊗jsSpOtRHO 271 of 294 menu

Ottimizzazione della ripetizione di operazioni pesanti in JavaScript

Nella lezione precedente, le chiamate ripetute di funzioni in realtà richiedono molto poco tempo e la nostra ottimizzazione non farà risparmiare molto. Tuttavia, le cose andranno molto peggio se chiameremo più volte una funzione "pesante" che richiede un tempo considerevole per essere eseguita.

Supponiamo, ad esempio, di avere una funzione che trova i divisori di un numero:

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

È ovvio che questa funzione sia abbastanza "pesante". Quindi sarebbe una cattiva idea scrivere un codice come questo:

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

Sarebbe meglio, naturalmente, eseguire l'operazione "pesante" una sola volta e memorizzare il risultato in una variabile, per poi utilizzare questa variabile dove necessario:

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

Ottimizza il codice qui sotto:

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; }
Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta