⊗jsSpOtLO 272 of 294 menu

Silmukkaoperaatioiden optimointi JavaScriptissä

Jopa kevyt operaatio, joka toistetaan monesti silmukassa, voi kuluttaa paljon resursseja.

Katsotaanpa esimerkkiä. Oletetaan, että meillä on tietty taulukko:

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

Etsitään tämän taulukon elementtien keskiarvo. Tätä varten on löydettävä elementtien summa ja jaettava se elementtien määrällä. Oletetaan, että joku ohjelmoija on jo ratkaissut tämän tehtävän seuraavalla tavalla:

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

Tarkastellaan tällaisen ratkaisun ongelmia. Teknisesti koodi toimii oikein ja antaa oikean vastauksen. Asia on siinä, että matemaattisesti on oikein jakaa koko summa määrällä, kuten myös jakaa jokainen termi erikseen määrällä.

Kuitenkin syntyy toinen ongelma. Asia on siinä, että suoritamme jakolaskun niin monta kertaa kuin taulukossamme on elementtejä. Ja käy ilmi, että teemme valtavan määrän ylimääräisiä operaatioita, sillä jakolaskun olisi voinut suorittaa lopussa - kerran, jakamalla koko löydetyn summan.

Optimoidaan koodimme:

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

Optimoi seuraava koodi:

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

Optimoi seuraava koodi:

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);
Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää