⊗jsSpOtEI 273 of 294 menu

Pengoptimuman Pusingan Gelung Berlebihan dalam JavaScript

Dalam kod berikut, seorang pengaturcara menyemak sama ada nombor 3 wujud dalam array:

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 penyelesaiannya? Nampaknya tiada operasi berlebihan dilakukan dalam gelung. Masalahnya, walau bagaimanapun, ialah selepas ditentukan bahawa nombor 3 wujud dalam array, gelung terus berputar hingga akhir array.

Yang paling tidak rasional ialah jika nombor 3 ditemui di suatu tempat di awal array, manakala array itu sendiri panjangnya, katakan, 1000 elemen. Ini menghasilkan seribu lelaran gelung berlebihan yang tidak berguna! Tidak optimum.

Mari optimumkan kod dengan menghentikan gelung pada masanya:

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

Kod berikut mengira berapa banyak elemen array perlu ditambah supaya jumlahnya menjadi lebih besar daripada 10. Laksanakan pengoptimuman:

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

Kod berikut mengeluarkan nombor genap dari julat yang diberikan. Laksanakan pengoptimuman:

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

Kod berikut mengeluarkan nombor yang boleh dibahagi dengan 2 dan 3 secara serentak. Laksanakan pengoptimuman:

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

Kod berikut mencari semua hari Jumaat 13 dalam tahun semasa. Laksanakan pengoptimuman:

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