0
0
Posts
LT
Lê Tuấn Vũletuanvu164

Tìm Hiểu Về Map và Set Trong JavaScript

Đăng vào 3 months ago

• 2 phút đọc

Chủ đề:

Javascript

JavaScript là một ngôn ngữ lập trình đa năng, và với sự ra đời của ECMAScript 2015 (ES6), nó đã trở nên mạnh mẽ hơn bao giờ hết nhờ vào việc giới thiệu các cấu trúc dữ liệu mới như Map và Set. Bài viết này sẽ cung cấp một cái nhìn sâu sắc về hai cấu trúc dữ liệu này, cách sử dụng chúng, và một số ví dụ thực tế.

Map trong JavaScript

Khái Niệm

Map là một cấu trúc dữ liệu, giúp lưu trữ dữ liệu dưới dạng cặp khóa (key) và giá trị (value). Điểm nổi bật của Map so với đối tượng JavaScript thông thường (Object) là Map cho phép sử dụng bất kỳ kiểu dữ liệu nào làm khóa, không chỉ là chuỗi hoặc Symbol

Tính Năng Của Map

  • Lưu trữ dữ liệu dạng cặp khóa-giá trị: Map lưu trữ dữ liệu dưới dạng cặp, giúp truy xuất dữ liệu dễ dàng hơn
  • Khóa đa dạng: Khóa của Map có thể là bất kỳ kiểu dữ liệu nào, từ số, chuỗi, đến đối tượng hoặc thậm chí là NaN
  • Thứ tự duy trì: Khác với đối tượng thông thường, Map duy trì thứ tự chèn của các phần tử, điều này giúp lặp qua Map trở nên dễ dàng và có thứ tự

Ví Dụ Về Map

let map = new Map();

// Thêm phần tử vào Map
map.set('apple', 'green');
map.set(1, 'one');
map.set(true, 'yes');

// Lấy giá trị từ Map
console.log(map.get('apple')); // Output: green
console.log(map.get(1)); // Output: one
console.log(map.get(true)); // Output: yes

// Kiểm tra sự tồn tại của khóa
console.log(map.has('apple')); // Output: true

// Xóa một phần tử
map.delete('apple');

// Duyệt qua Map
for (let [key, value] of map) {
    console.log(`${key}: ${value}`);
}

Set trong JavaScript

Khái Niệm

Set là một cấu trúc dữ liệu cho phép lưu trữ các giá trị duy nhất, tức là không có hai giá trị nào giống nhau trong Set. Điều này làm cho Set trở thành công cụ hữu ích để loại bỏ các phần tử trùng lặp trong dữ liệu.

Tính Năng Của Set

  • Lưu trữ giá trị duy nhất: Mỗi giá trị trong Set là duy nhất, không có sự trùng lặp
  • Dễ dàng thêm và xóa phần tử: Set cung cấp các phương thức add, deleteclear để quản lý các phần tử
  • Không có khái niệm khóa: Trong Set, không có khái niệm khóa như trong Map. Mỗi phần tử là một giá trị

Ví Dụ Về Set

let set = new Set();

// Thêm giá trị vào Set
set.add('apple');
set.add('banana');
set.add('apple'); // Giá trị này sẽ không được thêm vào vì nó đã tồn tại

// Kiểm tra sự tồn tại của giá trị
console.log(set.has('apple')); // Output: true

// Xóa một giá trị
set.delete('banana');

// Duyệt qua Set
for (let value of set) {
    console.log(value);
}

Kết Luận

Map và Set là hai cấu trúc dữ liệu quan trọng trong JavaScript, mỗi cái có những ưu điểm riêng biệt. Map hữu ích trong việc lưu trữ và truy xuất dữ liệu dạng cặp khóa-giá trị, trong khi Set giúp đảm bảo rằng dữ liệu không bị trùng lặp. Hiểu rõ về hai cấu trúc này sẽ giúp bạn tối ưu hóa và cải thiện hiệu quả code trong nhiều tình huống khác nhau.

Gợi ý câu hỏi phỏng vấn
entry

Bạn biết gì về ký hiệu big-O (big-O notation) và bạn có thể cho biết một số ví dụ liên quan đến các cấu trúc dữ liệu khác nhau?

entry

Danh sách liên kết có hiệu quả hơn mảng?

entry

So sánh ===== trong Javascript?

entry

Sự khác biệt của biến dùng var, letconst trong javascript là gì?

Bài viết cùng tác giả

Không có kết quả

Không có kết quả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào