⊗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हिन्दीMagyarՀայերենIndonesiaItaliano日本語Қазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა