⊗jsSpOtEI 273 of 294 menu

Optimalisatie van overbodige lusiteraties in JavaScript

In de volgende code controleert een programmeur of het getal 3 in de array aanwezig is:

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

Wat is er mis met zijn oplossing? Het lijkt erop dat er geen overbodige bewerkingen in de lus worden uitgevoerd. Het probleem is echter dat nadat is vastgesteld dat het getal 3 in de array zit, de lus toch blijft doordraaien tot het einde van de array.

Het meest inefficiënt zou zijn als het getal 3 ergens aan het begin van de array wordt gevonden, en de array zelf een lengte heeft van, laten we zeggen, 1000 elementen. Dat zou duizend nutteloze extra iteraties van de lus opleveren! Niet optimaal.

Laten we de code optimaliseren door de lus op tijd te stoppen:

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

De volgende code telt hoeveel elementen van de array opgeteld moeten worden, zodat de som groter wordt dan 10. Voer optimalisatie uit:

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

De volgende code geeft even getallen uit een bepaald bereik weer. Voer optimalisatie uit:

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

De volgende code geeft getallen weer die tegelijkertijd deelbaar zijn door 2 en door 3. Voer optimalisatie uit:

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

De volgende code zoekt naar alle vrijdag de 13e in het huidige jaar. Voer optimalisatie uit:

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); } } }
Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren