Set Object (ES6)
Set เก็บค่า Unique ไม่ซ้ำกัน รองรับ Primitive และ Object ใดๆ จำลำดับ Insertion Order
ไวยากรณ์
new Set([iterable])
ตัวอย่างพื้นฐาน
<script>
const set1 = new Set(['a', 'a', 'b', 'b', 'c']); // Unique: a, b, c
set1.add('c').add('d'); // Chainable
set1.forEach(v => console.log(`Value: ${v}`));
// Value: a
// Value: b
// Value: c
// Value: d
console.log(set1.size); // 4
console.log(set1.has('a')); // true
console.log(set1.has(8)); // false
</script>
ผลลัพธ์
Value: a Value: b Value: c Value: d 4 true false
เมธอดหลัก
| Method | Description |
|---|---|
| add(value) | เพิ่มค่า (Return Set) |
| delete(value) | ลบค่า (Return Boolean) |
| has(value) | เช็คมีค่า (Return Boolean) |
| clear() | ล้างทั้งหมด |
| forEach(callback) | วนลูป |
| values()/keys()/entries() | Iterator (keys=values ใน Set) |
Use Cases
- Remove Duplicates:
[...new Set(arr)] - Intersection:
new Set([...a].filter(x => b.has(x))) - Union:
new Set([...a, ...b]) - Difference:
new Set([...a].filter(x => !b.has(x))) - Unique Visitor Tracking
WeakSet
คล้าย WeakMap: Object Only, Weak Reference, Non-iterable, No Size