Ba Trình Lặp Tích Hợp Sẵn Trong JavaScript
Trên thực tế, mỗi đối tượng có thể lặp
chứa không phải một mà là ba trình lặp:
values, keys và entries.
Đối với mỗi loại đối tượng, mặc định sẽ áp dụng
một trình lặp riêng. Đối với mảng - đó là values,
còn, ví dụ, đối với bộ sưu tập Map,
đó là entries.
Với kiến thức này, giờ đây chúng ta có thể
áp dụng nguyên tắc này cho bất kỳ bộ sưu tập nào.
Ví dụ, giả sử chúng ta có một bộ sưu tập Map:
let map = new Map();
map.set('a', 1);
map.set('b', 2);
map.set('c', 3);
Mặc định, đối với bộ sưu tập này, áp dụng
trình lặp entries:
for (let elem of map) {
console.log(elem); // ['a', 1], ['b', 2], ['c', 3]
}
Nhưng chúng ta có thể dễ dàng lấy các khóa của bộ sưu tập:
for (let elem of map.keys()) {
console.log(elem); // 'a', 'b', 'c'
}
Cũng có thể lấy các giá trị:
for (let elem of map.values()) {
console.log(elem); // 1, 2, 3
}
Trình lặp mặc định nào hoạt động trong bộ sưu tập Set?