⊗jsSpOtEI 273 of 294 menu

Optimisasi Perulangan Berlebih pada JavaScript

Dalam kode berikut, seorang programmer memeriksa apakah dalam array terdapat angka 3:

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

Apa yang salah dengan solusinya? Sepertinya tidak ada operasi berlebih yang dilakukan dalam perulangan. Masalahnya, bagaimanapun, adalah setelah ditentukan bahwa angka 3 ada dalam array, perulangan tetap berlanjut hingga akhir array.

Yang paling tidak rasional adalah jika angka 3 ditemukan di suatu tempat di awal array, sedangkan array itu sendiri panjangnya, katakanlah, 1000 elemen. Hasilnya adalah seribu iterasi tambahan yang tidak berguna! Tidak optimal.

Mari optimalkan kode, hentikan perulangan tepat waktu:

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

Kode berikut menghitung berapa banyak elemen array yang perlu dijumlahkan agar jumlahnya menjadi lebih dari 10. Lakukan optimisasi:

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

Kode berikut mencetak bilangan genap dari rentang yang ditentukan. Lakukan optimisasi:

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

Kode berikut mencetak bilangan yang habis dibagi 2 dan 3 secara bersamaan. Lakukan optimisasi:

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

Kode berikut mencari semua Jumat 13 di tahun berjalan. Lakukan optimisasi:

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); } } }
Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak