⊗jsSpOtEI 273 of 294 menu

Optimalisering van oorbodige lussiklusse in JavaScript

In die volgende kode kontroleer 'n programmeerder of die nommer 3 in die array voorkom:

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 fout met sy oplossing? Dit lyk asof daar geen oorbodige operasies in die lus gedoen word nie. Die probleem is egter dat nadat vasgestel is dat die nommer 3 wel in die array is, die lus steeds tot aan die einde van die array voortgaan.

Die mees onrasioneel sal wees as die nommer 3 iewers aan die begin van die array gevind word, en die array self 'n lengte het van, sê, 1000 elemente. Dit sal dan duisend nuttelose oorbodige iterasies van die lus wees! Nie optimaal nie.

Laat ons die kode optimaliseer deur die lus betyds te stop:

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

Die volgende kode bereken hoeveel array-elemente bymekaar getel moet word voordat die som groter as 10 word. Voer optimalisering 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);

Die volgende kode druk ewe getalle uit 'n gegewe reeks uit. Voer optimalisering uit:

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

Die volgende kode druk getalle uit wat gelyktydig deur 2 en deur 3 deelbaar is. Voer optimalisering uit:

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

Die volgende kode soek na alle Vrydae wat die 13de is in die huidige jaar. Voer optimalisering 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); } } }
Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp