Bạn đang gặp khó khăn trong việc quản lý các giá trị duy nhất trong JavaScript? Bài viết này sẽ giới thiệu về Set, một cấu trúc dữ liệu mạnh mẽ giúp bạn dễ dàng loại bỏ các giá trị trùng lặp và kiểm tra sự tồn tại của các phần tử một cách hiệu quả. Chúng ta sẽ khám phá cách Set khác biệt so với mảng (Array) và đối tượng (Object), đồng thời cung cấp các ví dụ minh họa để bạn có thể áp dụng vào dự án của mình ngay lập tức.
Set là một đối tượng trong JavaScript cho phép bạn lưu trữ một tập hợp các giá trị duy nhất. Điều này có nghĩa là, không giống như mảng, Set không cho phép các giá trị trùng lặp. Nếu bạn cố gắng thêm một giá trị đã tồn tại trong Set, nó sẽ không có tác dụng gì.
Hãy tưởng tượng bạn đang thu thập danh sách tên người tham gia một sự kiện. Sử dụng Set giúp bạn đảm bảo mỗi người chỉ được tính một lần, ngay cả khi họ đăng ký nhiều lần.
Có một số lý do tại sao Set có thể là một lựa chọn tốt hơn so với mảng hoặc đối tượng khi làm việc với các giá trị duy nhất:
has()
) thường nhanh hơn so với việc tìm kiếm trong mảng.add()
, delete()
, has()
, size
) rất trực quan và dễ sử dụng.Ví dụ, bạn có một mảng chứa hàng ngàn ID người dùng và bạn muốn biết có bao nhiêu ID duy nhất. Sử dụng Set sẽ nhanh chóng và hiệu quả hơn nhiều so với việc lặp qua mảng và kiểm tra từng ID.
Để tạo một Set, bạn sử dụng từ khóa new Set()
:
const mySet = new Set();
Để thêm giá trị vào Set, bạn sử dụng phương thức add()
:
mySet.add(1);
mySet.add("hello");
mySet.add({name: "John"});
Lưu ý rằng bạn có thể thêm nhiều loại giá trị khác nhau vào Set, bao gồm số, chuỗi, đối tượng, và thậm chí cả các Set khác.
Để kiểm tra xem một giá trị có tồn tại trong Set hay không, bạn sử dụng phương thức has()
:
console.log(mySet.has(1)); // Output: true
console.log(mySet.has(2)); // Output: false
Để xóa một giá trị khỏi Set, bạn sử dụng phương thức delete()
:
mySet.delete("hello");
console.log(mySet.has("hello")); // Output: false
Để lấy số lượng giá trị trong Set, bạn sử dụng thuộc tính size
:
console.log(mySet.size); // Output: 2
Bạn có thể duyệt qua các giá trị trong Set bằng vòng lặp for...of
hoặc phương thức forEach()
:
for (const value of mySet) {
console.log(value);
}
mySet.forEach(value => {
console.log(value);
});
Dưới đây là bảng so sánh giữa Set, Mảng (Array) và Đối tượng (Object) để giúp bạn hiểu rõ hơn về sự khác biệt giữa chúng:
Tính năng | Set | Mảng (Array) | Đối tượng (Object) |
---|---|---|---|
Lưu trữ giá trị duy nhất | Có | Không | Không |
Duy trì thứ tự chèn | Có | Có | Không (trước ES6) / Có (từ ES6) |
Kiểm tra sự tồn tại hiệu quả | Có | Không | Có (với thuộc tính) |
Dưới đây là một vài ví dụ về cách bạn có thể sử dụng Set trong thực tế:
const myArray = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = [...new Set(myArray)];
console.log(uniqueArray); // Output: [1, 2, 3, 4, 5]
function areAllValuesUnique(arr) {
return new Set(arr).size === arr.length;
}
console.log(areAllValuesUnique([1, 2, 3, 4, 5])); // Output: true
console.log(areAllValuesUnique([1, 2, 2, 3, 4])); // Output: false
Set là một công cụ mạnh mẽ trong JavaScript để quản lý các giá trị duy nhất. Bằng cách sử dụng Set, bạn có thể viết code sạch hơn, hiệu quả hơn và dễ bảo trì hơn. Hãy thử sử dụng Set trong dự án tiếp theo của bạn và xem nó có thể giúp bạn như thế nào!
Bài viết liên quan