⊗jsSpOtLO 272 of 294 menu

Ciklikus műveletek optimalizálása JavaScriptben

Még egy könnyű művelet is, ha többször ismétlődik egy ciklusban, sok erőforrást vehet igénybe.

Nézzünk meg egy példát. Tegyük fel, hogy adott egy tömb:

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

Határozzuk meg a tömb elemeinek átlagát. Ehhez meg kell találni az elemek összegét és el kell osztani a mennyiségükkel. Tegyük fel, hogy egy programozó már a következőképpen oldotta meg a feladatot:

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

Nézzük meg ennek a megoldásnak a problémáit. Technikailag a kód helyesen működik és helyes választ ad. Az a helyzet, hogy matematikailag helyes mind az egész összeget elosztani a mennyiséggel, mind az egyes tagokat elosztani a mennyiséggel.

Azonban más probléma merül fel. Az a helyzet, hogy az osztást annyiszor hajtjuk végre, ahány elem van a tömbben. És kiderül, hogy nagy mennyiségű felesleges műveletet végzünk, hiszen az osztást a végén is elvégezhettük volna - egyszer, az egész megtalált összeg elosztásával.

Optimalizáljuk a kódunkat:

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

Optimalizálja a következő kódot:

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

Optimalizálja a következő kódot:

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);
Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás