⊗jsSpOtEI 273 of 294 menu

Optimierung überflüssiger Schleifendurchläufe in JavaScript

Im folgenden Code prüft ein Programmierer, ob das Array die Zahl 3 enthält:

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

Was ist an seiner Lösung falsch? Auf den ersten Blick scheint die Schleife keine überflüssigen Operationen auszuführen. Das Problem liegt jedoch darin, dass die Schleife weiterläuft, nachdem bereits festgestellt wurde, dass die Zahl 3 im Array enthalten ist.

Am ineffizientesten ist es, wenn die Zahl 3 irgendwo am Anfang des Arrays gefunden wird, das Array selbst aber eine Länge von, sagen wir, 1000 Elementen hat. Das ergibt tausend nutzlose, überflüssige Schleifeniterationen! Nicht optimal.

Optimieren wir den Code, indem wir die Schleife rechtzeitig anhalten:

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

Der folgende Code zählt, wie viele Elemente des Arrays addiert werden müssen, damit die Summe größer als 10 wird. Führen Sie eine Optimierung durch:

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

Der folgende Code gibt gerade Zahlen aus einem gegebenen Bereich aus. Führen Sie eine Optimierung durch:

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

Der folgende Code gibt Zahlen aus, die gleichzeitig durch 2 und durch 3 teilbar sind. Führen Sie eine Optimierung durch:

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

Der folgende Code sucht nach allen Freitagen, den 13., im aktuellen Jahr. Führen Sie eine Optimierung durch:

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); } } }
Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικά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
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen