⊗jsSpOtEI 273 of 294 menu

Optimalisering av unødvendige loop-iterasjoner i JavaScript

I følgende kode sjekker en programmerer om det finnes tallet 3 i arrayet:

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

Hva er galt med løsningen hans? Det ser ut til at det ikke gjøres noen unødvendige operasjoner i loopen. Problemet er imidlertid at etter at det er fastslått at tallet 3 er i arrayet, fortsetter loopen å gå til slutten av arrayet.

Det mest irrasjonelle vil være hvis tallet 3 blir funnet et sted i begynnelsen av arrayet, mens selve arrayet har en lengde på, for eksempel, 1000 elementer. Da vil det bli tusen ubrukelige, unødvendige iterasjoner av loopen! Ikke optimalt.

La oss optimalisere koden ved å stoppe loopen i tide:

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

Følgende kode teller hvor mange elementer i arrayet som må legges sammen for at summen skal bli større enn 10. Utfør optimalisering:

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

Følgende kode skriver ut partall fra det gitte intervallet. Utfør optimalisering:

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

Følgende kode skriver ut tall som er delelige med både 2 og 3. Utfør optimalisering:

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

Følgende kode søker etter alle fredager 13-ende i inneværende år. Utfør optimalisering:

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