Uboreshaji wa Vipindi vya Ziada vya Kitanzi katika JavaScript
Katika msimbo ufuatazo programuana hakiki,
kama kuna nambari 3 kwenye safu:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
let exists = false;
for (let elem of arr) {
if (elem === 3) {
exists = true;
}
}
console.log(exists);
Nini kibaya na uamuzi wake? Kinaonekana hakuna
shughuli za ziada kwenye kitanzi. Tatizo,
hata hivyo, ni kwamba baada ya kubainika
kuwa nambari 3 iko kwenye safu, kitanzi
bado kinaendelea kuzunguka hadi mwisho wa safu.
Isiyo na mantiki zaidi itakuwa, ikiwa nambari 3
itapatikana mahali popote mwanzoni mwa safu, na safu yenyewe
itakuwa na urefu, tuseme, wa vipengele 1000.
Itakuwa ni marudio elfu mabaya ya ziada ya kitanzi!
Sio bora.
Tutaboresha msimbo, kusimamisha kitanzi kwa wakati unaofaa:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
let exists = false;
for (let elem of arr) {
if (elem === 3) {
exists = true;
break;
}
}
console.log(exists);
Msimbo ufuatao unahesabu, ni kiasi gani
vipengele vya safu vinahitaji kujumlishwa,
ili jumla izidi 10.
Tekeleza uboreshaji:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
let sum = 0;
let i = 1;
for (let elem of arr) {
sum += elem;
if (sum <= 10) {
i++;
}
}
console.log(i);
Msimbo ufuatao unatoa nambari shufwa kutoka kwenye masafa uliyopewa. Tekeleza uboreshaji:
for (let i = 0; i <= 100; i++) {
if (i % 2 === 0) {
console.log(i);
}
}
Msimbo ufuatao unatoa nambari
zinazogawanyika wakati huo huo kwa 2
na kwa 3. Tekeleza uboreshaji:
for (let i = 0; i <= 100; i++) {
if (i % 2 === 0 && i % 3 === 0) {
console.log(i);
}
}
Msimbo ufuatao unatafuta Ijumaa zote
13 katika mwaka wa sasa.
Tekeleza uboreshaji:
for (let i = 0; i <= 11; i++) {
let curr = new Date;
let last = new Date(curr.getFullYear(), i + 1, 0).getDate();
for (let j = 1; j <= last; j++) {
let date = new Date(curr.getFullYear(), i, j);
if (date.getDate() === 13 && date.getDay() === 5) {
console.log(date);
}
}
}