⊗jsSpOtLO 272 of 294 menu

Optimering af cykliske operationer i JavaScript

Selv en let operation, der gentages mange gange i et loop, kan bruge mange ressourcer.

Lad os se på et eksempel. Antag at vi har en given array:

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

Lad os finde gennemsnittet af elementerne i denne array. For at gøre dette skal vi finde summen af elementerne og dividere den med antallet. Antag at en programmør allerede har løst denne opgave på følgende måde:

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

Lad os overveje problemerne med denne løsning. Teknisk set fungerer koden korrekt og giver det rigtige svar. Sagt matematisk er det korrekt både at dividere hele summen med antallet, og at dividere hvert enkelt led med antallet.

Der opstår dog et andet problem. Sagt enkelt, så vil vi udføre division lige så mange gange, som der er elementer i vores array. Og det viser sig, at vi laver et stort antal overflødige operationer, for division kunne være udført til sidst - én gang, ved at dividere hele den fundne sum.

Lad os optimere vores kode:

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

Optimér følgende kode:

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

Optimér følgende kode:

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);
Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis