forEach() lặp đối tượng Map trong JavaScript
Bùi Tấn Lực
- 989
- 19/09/2025
Chức năng của forEach() lặp đối tượng Map trong JavaScript
forEach() lặp đối tượng Map trong JavaScript dùng để lặp qua các cặp khóa(key) - giá trị (value) để lấy từng khóa và giá trị đó trong đối tượng Map.
Code forEach() lặp đối tượng Map trong JavaScript
<script>
// Tạo một Map
const thanhViens = new Map();
// Tạo cặp khóa, giá trị cho Map
thanhViens.set("Bùi Tấn Lực", 35);
thanhViens.set("Nguyễn Thùy Dung", 30);
thanhViens.set("Trần Thị Vân", 29);
thanhViens.set("Bùi Đan Trúc Quỳnh", 1);
// Dùng forEach lặp qua các cặp khóa - giá trị
thanhViens.forEach (function(value, key) {
document.write("Khóa(key): "+key +", Giá trị(value): "+ value + "<br>");
})
</script>
Kết quả:
Khóa(key): Bùi Tấn Lực, Giá trị(value): 35
Khóa(key): Nguyễn Thùy Dung, Giá trị(value): 30
Khóa(key): Trần Thị Vân, Giá trị(value): 29
Khóa(key): Bùi Đan Trúc Quỳnh, Giá trị(value): 1
Các cách duyệt Map trong JavaScript ngoài forEach()
Ngoài forEach(), JavaScript còn cung cấp nhiều cách khác để duyệt dữ liệu trong Map. Mỗi phương pháp phù hợp với một nhu cầu riêng, chẳng hạn cần lấy toàn bộ key, chỉ lấy value hoặc muốn xử lý đồng thời cả hai giá trị.
Việc lựa chọn cách duyệt phù hợp giúp mã nguồn dễ đọc hơn và thuận tiện khi cần kết hợp với điều kiện, break hoặc continue.
Duyệt Map bằng vòng lặp for...of
for...of là lựa chọn linh hoạt khi cần kiểm soát quá trình duyệt Map. Mỗi phần tử của Map được trả về dưới dạng một mảng gồm key và value, nhờ đó có thể xử lý hai dữ liệu này ngay trong cùng một vòng lặp.
const users = new Map([
["An", 20],
["Bình", 25],
["Chi", 22]
]);
for (const [name, age] of users) {
console.log(name, age);
}
Điểm đáng chú ý là for...of cho phép sử dụng break và continue. Đây là ưu thế khi cần dừng việc duyệt hoặc bỏ qua một phần tử dựa trên điều kiện, điều mà forEach() không hỗ trợ trực tiếp.
Lấy key và value bằng keys() và values()
Khi không cần xử lý đồng thời cả key và value, có thể sử dụng keys() hoặc values(). Phương thức keys() trả về iterator chứa các key, còn values() cung cấp iterator chứa các value.
const products = new Map([
["sp01", "Laptop"],
["sp02", "Điện thoại"],
["sp03", "Tai nghe"]
]);
for (const key of products.keys()) {
console.log(key);
}
for (const value of products.values()) {
console.log(value);
}
Cách này đặc biệt hữu ích khi bài toán chỉ quan tâm đến một phía của dữ liệu. Việc không phải lấy cả cặp key và value cũng giúp thể hiện rõ mục đích của đoạn mã.
Duyệt cặp key và value bằng entries()
entries() trả về iterator chứa từng cặp key và value của Map. Đây cũng chính là dạng dữ liệu có thể nhận được khi duyệt Map bằng for...of.
const scores = new Map([
["An", 8],
["Bình", 9],
["Chi", 7]
]);
for (const [name, score] of scores.entries()) {
console.log(name, score);
}
Phương pháp này phù hợp khi muốn thể hiện rõ rằng vòng lặp đang làm việc với các cặp key-value. Trong thực tế, có thể dùng trực tiếp for...of trên Map mà không cần gọi entries(), vì Map mặc định cung cấp các cặp dữ liệu này khi được duyệt.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết forEach() lặp đối tượng Map trong JavaScript.
- 0 Bình luận
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *