⊗jsSpOtEI 273 of 294 menu

Оптимизација на непотребни поминувања на циклусот во JavaScript

Во следниот код некој програмер проверува, дали во низата се наоѓа бројот 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);

Што не е во ред со неговото решение? Изгледа дека не се прават непотребни операции во циклусот. Проблемот, сепак, е во тоа што откако ќе се утврди дека бројот 3 се наоѓа во низата, циклусот сепак продолжува да се врти до крајот на низата.

Најнерационално ќе биде ако бројот 3 се најде некаде на почетокот на низата, а самата низа е со должина, да речеме, 1000 елементи. Ќе испадне илјада бескорисни, непотребни итерации на циклусот! Не е оптимално.

Да го оптимизираме кодот, со навремено запирање на циклусот:

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);

Следниот код пресметува колку елементи од низата треба да се соберат, за збирот да стане поголем од 10. Извршете оптимизација:

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);

Следниот код ги печати парните броеви од дадениот интервал. Извршете оптимизација:

for (let i = 0; i <= 100; i++) { if (i % 2 === 0) { console.log(i); } }

Следниот код ги печати броевите кои се деливи истовремено со 2 и со 3. Извршете оптимизација:

for (let i = 0; i <= 100; i++) { if (i % 2 === 0 && i % 3 === 0) { console.log(i); } }

Следниот код ги бара сите петоци 13-ти во тековната година. Извршете оптимизација:

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); } } }
Македонски
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
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј