Phương thức Map.values() trong JavaScript
Bùi Tấn Lực
- 919
- 19/09/2025
Chức năng của Phương thức Map.values() trong JavaScript
Phương thức Map.values() trong JavaScript dùng để lấy danh sách các giá trị (value) trong một đối tượng Map, có thể dùng vòng lặp for of để lấy giá trị, các giá trị sắp xếp theo thứ tự chèn trước ở phía trước, chèn sau ở phía sau.
Cú pháp của Phương thức Map.values() trong JavaScript
Map.values()
Map: tên biến của đối tượng Map, biến này tự đặt tên và thay đổi được.
Code Phương thức Map.values() 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>");
})
// Danh sách giá trị (value)
document.write("<b>Danh sách giá trị (value)</b><br>");
for (const value of thanhViens.values()) {
// Lấy từng giá trị (value)
document.write(value+"<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
Danh sách giá trị (value)
35
30
29
1
Những lưu ý khi sử dụng Map.values() trong JavaScript
Khi làm việc với Map.values(), điểm cần chú ý không chỉ nằm ở cách lấy các giá trị mà còn ở kiểu dữ liệu nhận được và cách xử lý kết quả. Nắm rõ những đặc điểm này giúp tránh lỗi khi thao tác với dữ liệu sau khi gọi phương thức.
Map.values() trả về Iterator thay vì mảng
Map.values() không trả về một mảng chứa toàn bộ giá trị. Phương thức này tạo ra một Iterator, cho phép duyệt lần lượt các giá trị đang có trong Map.
Vì vậy, nếu cần sử dụng các phương thức dành riêng cho mảng như map(), filter() hoặc reduce(), bạn nên chuyển Iterator thành mảng trước khi xử lý.
Cách duyệt và chuyển Iterator thành Array
Iterator nhận được từ Map.values() có thể được duyệt bằng vòng lặp for...of. Đây là lựa chọn phù hợp khi chỉ cần đọc lần lượt từng giá trị mà không cần tạo thêm một mảng mới.
Nếu cần lưu các giá trị thành mảng để tiếp tục xử lý, có thể sử dụng Array.from() hoặc toán tử spread. Cách này đặc biệt hữu ích khi muốn kết hợp với các phương thức xử lý mảng.
const products = new Map([
["p01", "Laptop"],
["p02", "Mouse"],
["p03", "Keyboard"]
]);
const values = Array.from(products.values());
console.log(values);
Thay đổi Map có ảnh hưởng đến Iterator hay không?
Iterator được tạo bởi Map.values() liên kết với Map mà nó đang duyệt. Vì vậy, việc thay đổi Map trong quá trình duyệt có thể ảnh hưởng đến những giá trị mà Iterator tiếp tục trả về.
Điều này cần được lưu ý khi thêm hoặc xóa phần tử ngay trong lúc đang duyệt. Nếu muốn làm việc với một tập giá trị cố định, cách an toàn hơn là chuyển kết quả thành mảng trước rồi mới thực hiện các thao tác tiếp theo.
Khi nào nên dùng Map.values() thay vì Map.keys() hoặc Map.entries()?
Hãy chọn Map.values() khi mục tiêu chính là lấy và duyệt giá trị mà không cần quan tâm đến khóa tương ứng.
Nếu cần khóa, sử dụng Map.keys(). Nếu cần xử lý đồng thời cả khóa và giá trị, Map.entries() sẽ phù hợp hơn. Việc chọn đúng phương thức giúp đoạn mã rõ ràng và tránh phải lấy thêm dữ liệu không cần thiết.
- Map.values(): tập trung vào giá trị.
- Map.keys(): tập trung vào khóa.
- Map.entries(): lấy cả khóa và giá trị.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Phương thức Map.values() 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 *