Phương thức Map.has() trong JavaScript
Bùi Tấn Lực
- 914
- 19/09/2025
Chức năng của Phương thức Map.has() trong JavaScript
Phương thức Map.has() trong JavaScript dùng để kiểm tra một khóa (key) có tồn tại trong đối tượng Map hay không, nếu có tồn tại sẽ trả về true, nếu không tồn tại sẽ trả về false.
Cú pháp của Phương thức Map.has() trong JavaScript
Map.has(khoa)
Map: tên biến của đối tượng Map, biến này tự đặt tên.
khoa: khóa (key).
Code Phương thức Map.has() 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);
// Xem danh sách Map
thanhViens.forEach (function(value, key) {
document.write(key + ' = ' + value + "<br>");
})
// Kiểm tra khóa Nguyễn Thùy Dung có tồn tại không
document.write("Kiểm tra khóa Nguyễn Thùy Dung có tồn tại không: "+thanhViens.has("Nguyễn Thùy Dung")+"<br>");
// Xóa cặp khóa - giá trị có khóa (Nguyễn Thùy Dung)
thanhViens.delete("Nguyễn Thùy Dung");
document.write("<b>Xem lại danh sách Map sau khi xóa:</b><br>");
// Xem lại danh sách Map
thanhViens.forEach (function(value, key) {
document.write(key + ' = ' + value + "<br>");
})
// Kiểm tra khóa Nguyễn Thùy Dung có tồn tại không
document.write("Kiểm tra khóa Nguyễn Thùy Dung có tồn tại không: "+thanhViens.has("Nguyễn Thùy Dung")+"<br>");
</script>
Kết quả:
Bùi Tấn Lực = 35
Nguyễn Thùy Dung = 30
Trần Thị Vân = 29
Bùi Đan Trúc Quỳnh = 1
Kiểm tra khóa Nguyễn Thùy Dung có tồn tại không: true
Xem lại danh sách Map sau khi xóa:
Bùi Tấn Lực = 35
Trần Thị Vân = 29
Bùi Đan Trúc Quỳnh = 1
Kiểm tra khóa Nguyễn Thùy Dung có tồn tại không: false
Ứng dụng Map.has() trong các tình huống thực tế
Map.has() phát huy tác dụng khi chương trình cần xác định một khóa đã tồn tại trước khi thực hiện bước xử lý tiếp theo. Cách kiểm tra này đặc biệt hữu ích với dữ liệu có cấu trúc khóa – giá trị, giúp hạn chế việc xử lý nhầm dữ liệu không tồn tại và làm cho logic JavaScript rõ ràng hơn.
Kiểm tra dữ liệu tồn tại trước khi xử lý
Trước khi đọc, cập nhật hoặc thực hiện thao tác dựa trên một khóa, có thể dùng Map.has() để xác nhận khóa đó đang có trong Map. Phương thức trả về true nếu khóa tồn tại và false nếu không tìm thấy.
Cách này phù hợp với các tình huống như kiểm tra một mã sản phẩm đã được lưu, xác định người dùng đã có trong danh sách hay kiểm tra một giá trị đã được ghi nhận trước đó. Khi kết quả là true, chương trình mới tiếp tục xử lý dữ liệu liên quan.
const products = new Map([
["SP01", "Laptop"],
["SP02", "Bàn phím"]
]);
if (products.has("SP01")) {
console.log("Sản phẩm đã tồn tại");
}
Việc kiểm tra trước giúp tách riêng bước xác định sự tồn tại khỏi bước xử lý dữ liệu. Nhờ đó, mã nguồn dễ đọc hơn và tránh phải dựa vào giá trị trả về của Map.get() để suy đoán khóa có tồn tại hay không.
Kết hợp Map.has() với Map.get() để xử lý dữ liệu an toàn
Map.has() và Map.get() có thể được sử dụng cùng nhau khi cần vừa xác nhận khóa vừa lấy giá trị tương ứng. Đây là lựa chọn phù hợp khi giá trị có thể là undefined, bởi việc chỉ kiểm tra kết quả của Map.get() có thể không phân biệt được khóa không tồn tại với khóa đang lưu giá trị undefined.
const users = new Map([
["u01", { name: "An", role: "admin" }],
["u02", undefined]
]);
const userId = "u02";
if (users.has(userId)) {
const user = users.get(userId);
console.log(user);
}
Trong trường hợp này, has() xác nhận khóa u02 thực sự tồn tại, còn get() lấy giá trị được liên kết với khóa đó. Cách kết hợp này giúp logic xử lý chính xác hơn khi dữ liệu có thể chứa các giá trị đặc biệt hoặc giá trị rỗng.
Kiểm tra nhiều khóa trong Map hiệu quả
Khi cần xác định một nhóm khóa có tồn tại hay không, có thể duyệt qua danh sách khóa và gọi Map.has() cho từng phần tử. Cách làm này thích hợp khi chương trình cần kiểm tra dữ liệu đầu vào trước khi tiếp tục một thao tác lớn hơn.
const permissions = new Map([
["read", true],
["write", true],
["delete", false]
]);
const requiredKeys = ["read", "write"];
const allExist = requiredKeys.every(key => permissions.has(key));
console.log(allExist);
Với cách này, điều kiện kiểm tra được thể hiện trực tiếp qua danh sách khóa cần tìm. Khi số lượng khóa lớn hoặc việc kiểm tra được thực hiện thường xuyên, nên xây dựng cấu trúc dữ liệu phù hợp ngay từ đầu để tránh các vòng lặp và thao tác không cần thiết.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Phương thức Map.has() 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 *