Uboreshaji wa Kurudia Operesheni Kubwa katika JavaScript
Katika somo lililopita, zitendo za kurudia za kazi kwa hakika huchukua muda mchache sana na uboreshaji wetu hautakuwa na akiba kubwa. Hata hivyo, itakuwa mbaya zaidi ikiwa tutafanya mara kadhaa zitendo za kazi "kubwa", ambayo inachukua muda mrefu kutekeleza.
Kwa mfano, hebu tuseme tuna kazi ambayo inapata wagawanyiko wa nambari:
function getDivisorsSum(num) {
let res = 0;
for (let i = 1; i <= num; i++) {
if (num % i === 0) {
res += i;
}
}
return res;
}
Ni wazi kuwa kazi hii ni "kubwa" kwa kiasi kikubwa. Kwa hivyo, itakuwa wazo baya kuandika msimbo kama huu:
let num = 123456;
if (getDivisorsSum(num) >= 10 && getDivisorsSum(num) <= 100) {
console.log('+++');
} else {
console.log('---');
}
Bora, bila shaka, kutekeleza operesheni "kubwa" mara moja na kuhifadhi matokeo kwenye kutofautisha, kisha kutumia kutofautisha hicho katika sehemu zinazohitajika:
let num = 123456;
let sum = getDivisorsSum(num);
if (sum >= 10 && sum <= 100) {
console.log('+++');
} else {
console.log('---');
}
Boresha msimbo ulio hapa chini:
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;
}