Bài học theo mô-đun (4/4)
Lặp lại các bộ sưu tập
Thao tác với các bộ sưu tập hầu như luôn có nghĩa là lặp đi lặp lại: duyệt qua từng phần tử một và thực hiện điều gì đó cho từng phần tử. Trong bài học này chúng ta nhìn vào các cú pháp cơ bản; trong mô-đun mảng chức năng (bản đồ / filter/reduce) chúng ta sẽ học cách viết chúng một cách khai báo hơn.
for…of cho mảng
Đó là vòng lặp mà bạn hầu như luôn muốn sử dụng để lặp một mảng: nó trích xuất giá trị ở mỗi bước.
const colori = ['rosso', 'verde', 'blu'];
for (const c of colori) {
console.log(c);
}
// 'rosso'
// 'verde'
// 'blu'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 đối với đồ vật — thận trọng
for…in lặp lại phím (chuỗi) của một đối tượng:
const utente = { nome: 'Anna', eta: 28 };
for (const k in utente) {
console.log(`${k} = ${utente[k]}`);
}Object.keys / values / entries
Đây là cách mạnh mẽ để lặp lại một đối tượng. Họ trả về mảng, và như vậy
chúng kết hợp rất tốt với for…of:
const utente = { nome: 'Anna', eta: 28 };
Object.keys(utente); // ['nome', 'eta']
Object.values(utente); // ['Anna', 28]
Object.entries(utente); // [['nome', 'Anna'], ['eta', 28]]
for (const [k, v] of Object.entries(utente)) {
console.log(`${k} → ${v}`);
}Cổ điển for
"Trường phái cũ" for vẫn tồn tại. Bạn sẽ hiếm khi sử dụng nó, nhưng nó rất hữu ích
khi bạn cần kiểm soát tốt chỉ mục (bỏ qua các phần tử, lặp lại
ngược):
for (let i = 0; i < colori.length; i++) {
console.log(i, colori[i]);
}
// Backwards
for (let i = colori.length - 1; i >= 0; i--) {
console.log(colori[i]);
}Hãy thử nó
Cho `số = [3, 5, 7]`, tính tổng của tất cả các phần tử (15) bằng cách lặp với for...of. Biểu thức cuối cùng phải tính tổng.
Hiển thị gợi ý
for (hằng số n) { sum = sum + n; }
Giải pháp khả dụng sau 3 lần thử
Xem lại bài tập
Cho `price = { mela: 0,4, pera: 0,55, chuối: 0,3 }`, trả về TỔNG SỐ mục nhập trong đối tượng (3) bằng Object.keys.
Hiển thị gợi ý
Object.keys(obj) trả về một mảng; .length cho biết có bao nhiêu phím.
Giải pháp khả dụng sau 3 lần thử