⊗jsSpOtRHO 271 of 294 menu

Optimisation de la répétition d'opérations lourdes en JavaScript

Dans la leçon précédente, les appels répétés de fonctions prenaient en réalité très peu de temps et notre optimisation n'économisait pas beaucoup. Cependant, les choses seraient bien pires si nous devions effectuer plusieurs fois l'appel d'une fonction "lourde" qui prend un temps d'exécution assez long.

Supposons, par exemple, que nous ayons une fonction qui trouve les diviseurs d'un nombre :

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

Il est évident que cette fonction est assez "lourde". Il serait donc une mauvaise idée d'écrire un code comme celui-ci :

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

Il serait bien mieux, bien sûr, d'effectuer l'opération "lourde" une seule fois et de stocker le résultat dans une variable, puis d'utiliser cette variable aux endroits nécessaires :

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

Optimisez le code ci-dessous :

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; }
Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser