Bài học theo mô-đun (2/4)
cho…của và cho…trong
JavaScript có hai vòng lặp "công thái học" không nên nhầm lẫn:
for…oflặp lại giá trị của một bộ sưu tập có thể lặp lại (mảng, chuỗi, Tập hợp, Bản đồ...).for…inlặp lại khóa có thể đếm được của một đối tượng.
Chúng là anh em họ hàng gần gũi và dễ dàng bị hoán đổi - sử dụng sai từ là một trong những sai lầm đầu tiên của ngôn ngữ. bẫy.
for…of cho mảng và chuỗi
const colori = ['rosso', 'verde', 'blu'];
for (const c of colori) {
console.log(c); // 'rosso', 'verde', 'blu'
}
for (const ch of 'abc') {
console.log(ch); // 'a', 'b', 'c'
}Nó không cung cấp cho bạn chỉ mục. Nếu bạn cũng cần chỉ mục, hãy sử dụng entries():
for (const [i, c] of colori.entries()) {
console.log(i, c); // 0 rosso, 1 verde, 2 blu
}for…in cho các đối tượng
const utente = { nome: 'Anna', eta: 30, citta: 'Roma' };
for (const chiave in utente) {
console.log(chiave, utente[chiave]); // 'nome' 'Anna', ...
}Khi nào KHÔNG nhầm lẫn chúng
const colori = ['rosso', 'verde', 'blu'];
// SBAGLIATO: stampa gli indici come stringhe!
for (const x in colori) {
console.log(x); // '0', '1', '2'
}
// GIUSTO
for (const x of colori) {
console.log(x); // 'rosso', 'verde', 'blu'
}Hãy thử nó
Xác định `concat(words)`, cho một danh sách các chuỗi, trả về một chuỗi có tất cả các chuỗi được nối với nhau, phân tách bằng dấu cách. Sử dụng cho…của.
Hiển thị gợi ý
Tích lũy thành một chuỗi; chỉ thêm khoảng trắng nếu đó không phải là từ đầu tiên.
Giải pháp khả dụng sau 3 lần thử
Xem lại bài tập
Xác định `activeValues(obj)` trả về một mảng có các giá trị của đối tượng là số > 0. Sử dụng for…in. Thứ tự phải khớp với thứ tự lặp của các phím.
Hiển thị gợi ý
Lặp lại với for...in trên các phím, lọc với typeof và > 0, đẩy vào kết quả.
Giải pháp khả dụng sau 3 lần thử