⊗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šuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј