⊗jsSpOtLO 272 of 294 menu

Optimizacija cikličnih operacija u JavaScript-u

Čak i laka operacija, višestruko ponovljena u petlji, može oduzeti mnogo resursa.

Pogledajmo na primeru. Neka nam je dat neki niz:

let arr = [1, 2, 3, 4, 5, 6];

Hajde da nađemo prosečnu vrednost elemenata ovog niza. Za to je potrebno naći zbir elemenata i podeliti ga sa količinom. Neka je neki programer već rešio ovaj zadatak na sledeći način:

let avg = 0; for (let elem of arr) { avg += elem / arr.length; } console.log(avg);

Hajde da razmotrimo probleme ovakvog rešenja. Tehnički, kod radi ispravno i daje tačan odgovor. Stvar je u tome što je matematički tačno kako podeliti ceo zbir sa količinom, tako i podeliti svaki od sabiraka sa količinom.

Međutim, javlja se drugi problem. Stvar je u tome što ćemo izvršiti deljenje onoliko puta koliko ima elemenata u našem nizu. I ispada da radimo veliki broj suvišnih operacija, pošto se deljenje moglo izvršiti na kraju - jednom, podelivši celokupan nađeni zbir.

Optimizujmo naš kod:

let sum = 0; for (let elem of arr) { sum += elem; } let avg = sum / arr.length; console.log(avg);

Optimizujte sledeći kod:

for (let i = 1900; i <= 2100; i++) { let curr = new Date; let date = new Date(i, curr.getMonth(), curr.getDate()); if (curr.getDay() === date.getDay()) { console.log(date); } }

Optimizujte sledeći kod:

let obj = {a: 10, b: 20, c: 30, d: 40, e: 50}; let sum = 0; for (let key in obj) { if (String(obj[key])[0] === '1' || String(obj[key])[0] === '2') { sum += obj[key]; } } console.log(sum);
Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij