⊗jsSpOtEI 273 of 294 menu

Tối ưu hóa các vòng lặp thừa trong JavaScript

Trong đoạn mã sau, một lập trình viên nào đó kiểm tra xem trong mảng có số 3 hay không:

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

Có vấn đề gì với giải pháp của anh ta? Có vẻ như không có thao tác thừa nào trong vòng lặp. Tuy nhiên, vấn đề là sau khi xác định rằng số 3 có trong mảng, vòng lặp vẫn tiếp tục chạy cho đến cuối mảng.

Sẽ không hiệu quả nhất nếu số 3 được tìm thấy ở đâu đó đầu mảng, còn bản thân mảng có độ dài, chẳng hạn, 1000 phần tử. Sẽ có một nghìn lần lặp vô ích thừa! Không tối ưu.

Hãy tối ưu hóa mã bằng cách dừng vòng lặp kịp thời:

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

Đoạn mã sau đếm xem cần cộng bao nhiêu phần tử của mảng để tổng lớn hơn 10. Hãy thực hiện tối ưu hóa:

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

Đoạn mã sau in các số chẵn từ một khoảng cho trước. Hãy thực hiện tối ưu hóa:

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

Đoạn mã sau in các số chia hết đồng thời cho 2 và cho 3. Hãy thực hiện tối ưu hóa:

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

Đoạn mã sau tìm tất cả các thứ Sáu ngày 13 trong năm hiện tại. Hãy thực hiện tối ưu hóa:

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); } } }
Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối