Tập hợp (Set) và mảng (Array) đều là iterable objects trong JavaScript và TypeScript, nghĩa là bạn có thể duyệt qua các phần tử của chúng bằng các cấu trúc lặp như for...of. Tuy nhiên, chúng có một số khác biệt quan trọng:
Sự khác biệt giữa Set và Array:
Tính duy nhất của phần tử:
Set: Các phần tử trong Set là duy nhất, tức là không có phần tử nào lặp lại. Nếu bạn thêm một phần tử đã tồn tại vào Set, nó sẽ không thay đổi.
Array: Mảng có thể chứa các phần tử trùng lặp.
Thứ tự các phần tử:
Set: Các phần tử trong Set được lưu trữ theo thứ tự chèn vào, nhưng không có chỉ mục (index) như trong mảng.
Array: Các phần tử trong mảng có thứ tự và được truy cập thông qua chỉ mục.
Hiệu suất:
Set: Các thao tác như tìm kiếm, thêm, và xóa phần tử trong Set thường có hiệu suất tốt hơn so với mảng, đặc biệt là khi Set chứa nhiều phần tử.
Array: Các thao tác tương tự trên mảng có thể chậm hơn, đặc biệt là khi mảng lớn và chứa nhiều phần tử trùng lặp.
Ví dụ minh họa:
Tạo và sử dụng Set:
TypeScript
const mySet = new Set();
// Thêm phần tử vào Set
mySet.add(1);
mySet.add(2);
mySet.add(2); // Không thêm phần tử này vì nó đã tồn tại
console.log(mySet); // Output: Set { 1, 2 }
// Duyệt qua các phần tử của Set
for (let value of mySet) {
console.log(value);
}
// Output:
// 1
// 2
// Kiểm tra sự tồn tại của một phần tử
console.log(mySet.has(1)); // Output: true
console.log(mySet.has(3)); // Output: false
// Xóa một phần tử
mySet.delete(1);
console.log(mySet); // Output: Set { 2 }
Tạo và sử dụng Array:
TypeScript
const myArray = [1, 2, 2];
// Duyệt qua các phần tử của Array
for (let value of myArray) {
console.log(value);
}
// Output:
// 1
// 2
// 2
// Kiểm tra sự tồn tại của một phần tử
console.log(myArray.includes(1)); // Output: true
console.log(myArray.includes(3)); // Output: false
// Xóa một phần tử (sử dụng filter để tạo một mảng mới không chứa phần tử đó)
const newArray = myArray.filter(item => item !== 1);
console.log(newArray); // Output: [2, 2]
2 vulnerabilities detected
Tóm tắt:
Set đảm bảo tính duy nhất của các phần tử và thường có hiệu suất tốt hơn cho các thao tác tìm kiếm, thêm, và xóa.
Array cho phép các phần tử trùng lặp và các phần tử có thứ tự, truy cập thông qua chỉ mục.
Hy vọng điều này giúp bạn hiểu rõ hơn về sự khác biệt giữa Set và Array!
Top comments (1)
phan biet
for ... in
for ... of
foreach