Optimizimi i Kalimeve të Tepërta të Ciklit në JavaScript
Në kodin vijues, një programues kontrollon nëse në array
ndodhet numri 3:
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);
Çfarë nuk shkon me zgjidhjen e tij? Në dukje nuk
kryhen operacione të tepërta në cikël. Problemi,
sidoqoftë, është se pasi është përcaktuar
që numri 3 ndodhet në array, cikli
vazhdon të kthehet deri në fund të array.
Gjëja më joracionale do të ishte nëse numri 3
gjendej diku në fillim të array, dhe vetë array
do të kishte gjatësi, le të themi, 1000 elementë.
Do të rezultonte një mijë përsëritje të kotë të tepërta
të ciklit! Jo optimale.
Le të optimizojmë kodin, duke e ndaluar ciklin në kohën e duhur:
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);
Kodi vijues llogarit sa
elementë të array duhen mbledhur
që shuma të bëhet më e madhe se 10.
Kryeni optimizimin:
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);
Kodi vijues shfaq numrat çift nga një interval i caktuar. Kryeni optimizimin:
for (let i = 0; i <= 100; i++) {
if (i % 2 === 0) {
console.log(i);
}
}
Kodi vijues shfaq numrat
që pjesëtohen njëkohësisht me 2
dhe me 3. Kryeni optimizimin:
for (let i = 0; i <= 100; i++) {
if (i % 2 === 0 && i % 3 === 0) {
console.log(i);
}
}
Kodi vijues kërkon të gjitha të premtat
13-të në vitin aktual.
Kryeni optimizimin:
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);
}
}
}