Phương thức Map.has() trong JavaScript

Phương thức Map.has() trong JavaScript
Phương thức Map.has() trong JavaScript

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

Chạy Thử

Ứ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
CEO Bùi Tấn Lực | Founder Web Mới
Bùi Tấn Lực
Tìm hiểu về CEO Bùi Tấn Lực, Founder Web Mới với nhiều năm kinh nghiệm trong lĩnh vực phát triển website, SEO và chia sẻ kiến thức công nghệ
Đánh giá
Chia sẻ nội dung đánh giá của bạn về Phương thức Map.has() trong JavaScript
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 *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Yêu Cầu Báo Giá
Gửi trang web mẫu cần làm theo, chúng tôi sẽ báo giá đến bạn từ Email (tanlucit09@gmail.com - Bùi Tấn Lực) hoặc Zalo (Lực IT - 0398259259) !