Set trong JavaScript (ES6+) là tập hợp giá trị duy nhất (unique). Phương thức delete(value) xóa phần tử nếu tồn tại.
Cú pháp
set.delete(value)
- Trả về
truenếu xóa thành công (phần tử tồn tại). - Trả về
falsenếu phần tử không tồn tại.
Ví dụ cơ bản (ES6 Set)
const mySet = new Set([1, 2, 5, 6]); console.log(mySet.has(5)); // true mySet.delete(5); console.log(mySet.has(5)); // false console.log(mySet.has(20)); // false console.log(mySet.has(1)); // true // Xóa phần tử không tồn tại mySet.delete(99); // false, không lỗi
Triển khai thủ công (Custom Set class) - học tập
class MySet {
constructor() {
this.container = {}; // Dùng object làm hash map
}
has(val) {
return this.container.hasOwnProperty(val);
}
delete(val) {
if (this.has(val)) {
delete this.container[val];
return true;
}
return false;
}
// ... add, clear, forEach, static union/difference
}
Lưu ý
Setdùng **SameValueZero** algorithm so sánh (gần như===nhưngNaN === NaNlà true).- Không có index, không thể xóa bằng vị trí (chỉ bằng giá trị).
clear()xóa toàn bộ.- Duyệt:
for (const v of set)hoặcset.forEach(cb).