⊗jsSpOtRHO 271 of 294 menu

Ծանր օպերացիաների կրկնության օպտիմիզացիան JavaScript-ում

Նախորդ դասում ֆունկցիաների կրկնվող կանչերը իրականում շատ քիչ ժամանակ են խլում, և մեր օպտիմիզացիան շատ չի խնայի: Սակայն, ամեն ինչ շատ ավելի վատ կլինի, եթե մի քանի անգամ կանչենք «ծանր» ֆունկցիա, որը կատարվում է բավականին երկար ժամանակ:

Ենթադրենք, օրինակ, մենք ունենք ֆունկցիա, որը գտնում է թվի բաժանարարները.

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

Ակնհայտ է, որ այս ֆունկցիան բավականին «ծանր» է: Ուստի վատ գաղափար կլինի գրել այսպիսի կոդ.

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

Իհարկե, ավելի լավ է կատարել «ծանր» օպերացիան մեկ անգամ և արդյունքը գրել փոփոխականի մեջ, ապա օգտագործել այդ փոփոխականը անհրաժեշտ տեղերում.

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

Օպտիմիզացրեք ստորև բերված կոդը.

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; }
Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել