Vòng lặp
Bài 5 – Sử dụng vòng lặp trong JavaScript để lặp lại hành động và xử lý danh sách hiệu quả.
Vòng Lặp
Vòng lặp giúp chương trình lặp lại hành động nhiều lần mà không cần viết lại cùng một đoạn code. Đây là công cụ mạnh mẽ để xử lý danh sách, tính toán, truy vấn dữ liệu và vận hành logic tự động.
1. Vì sao phải dùng vòng lặp?
Ví dụ: in số từ 1 đến 100
→ Nếu không có vòng lặp, bạn phải viết 100 dòng code.
Vòng lặp giúp bạn làm việc đó bằng 3 dòng.
Tư duy cốt lõi:
“Có hành động cần lặp lại? Dùng vòng lặp.”
2. Vòng lặp For – phổ biến nhất
Cấu trúc:
for (khởi_tạo; điều_kiện; bước_lặp) {
// code lặp
}
Ví dụ:
for (let i = 1; i <= 5; i++) {
console.log("Lần:", i);
}
Flow hoạt động:
- Khởi tạo biến i
- Kiểm tra điều kiện
- Chạy code
- Tăng i
- Lặp lại
🔑 GHI NHỚ: Vòng lặp for phù hợp khi biết trước số lần lặp
3. Vòng lặp While – lặp khi điều kiện còn đúng
Phù hợp cho các trường hợp không biết trước số lần lặp.
let count = 0;
while (count < 3) {
console.log("Count:", count);
count++;
}
🔑 GHI NHỚ: While chạy liên tục khi điều kiện còn đúng
4. Do While – chạy ít nhất 1 lần
let n = 0;
do {
console.log("N:", n);
n++;
} while (n < 3);
Khác biệt: Code chạy một lần trước, rồi mới kiểm tra điều kiện.
🔑 GHI NHỚ: Do While luôn chạy ít nhất 1 lần dù điều kiện sai
5. Vòng lặp dành cho mảng (rất quan trọng)
Với danh sách dữ liệu, bạn dùng các vòng lặp tối ưu:
5.1. for…of – đơn giản, dễ đọc
let scores = [8, 9, 10];
for (let score of scores) {
console.log(score);
}
5.2. forEach – viết gọn cho mảng
scores.forEach(s => console.log(s));
5.3. map – tạo mảng mới từ mảng hiện có
let doubled = scores.map(s => s * 2);
5.4. filter – lọc dữ liệu
let passed = scores.filter(s => s >= 8);
🔑 GHI NHỚ:
for…ofvàforEachdành cho lặpmap,filterdành cho xử lý danh sách
6. Dừng vòng lặp: break và continue
break – thoát khỏi vòng lặp
for (let i = 1; i <= 10; i++) {
if (i === 5) break;
console.log(i);
}
continue – bỏ qua vòng hiện tại
for (let i = 1; i <= 5; i++) {
if (i === 3) continue;
console.log(i);
}
🔑 GHI NHỚ:
break: Thoát hoàn toàn khỏi vòng lặpcontinue: Bỏ qua lần lặp hiện tại, chuyển sang lần kế tiếp
7. Lỗi thường gặp khi dùng vòng lặp
- Quên tăng biến đếm → vòng lặp vô hạn
- Lặp sai điều kiện → không chạy hoặc chạy quá nhiều
for…indùng sai cho mảng → dễ gặp lỗi (không nên dùngfor…incho mảng)- Lặp dữ liệu lớn mà không tối ưu → gây chậm ứng dụng
⚠️ GHI NHỚ: Luôn kiểm tra điều kiện dừng và cập nhật biến đếm trong vòng lặp
8. Bài tập thực hành
Bài 1
In các số từ 1 đến 100.
Bài 2
Tính tổng từ 1 đến 50 bằng vòng lặp for.
Bài 3
Cho mảng:
let prices = [100, 200, 300, 400];
Hãy:
- In ra từng giá
- Lọc ra giá > 200
- Nhân đôi tất cả giá
Bài 4
Dùng while để đếm ngược từ 10 → 0.
9. Kết luận bài học
- Vòng lặp giúp tự động hóa thao tác lặp lại
for– linh hoạt nhấtwhile– dùng khi không biết số lần lặp trướcfor…of/forEach– tối ưu cho mảngmap/filter– xử lý dữ liệu hiệu quả, tinh gọn
🔑 GHI NHỚ QUAN TRỌNG:
- Chọn đúng loại vòng lặp cho từng trường hợp
- Luôn có điều kiện dừng rõ ràng
- Ưu tiên các method như
map,filterkhi làm việc với mảng- Tránh vòng lặp vô hạn bằng cách kiểm tra biến đếm