Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

Set ใน JavaScript: Collection ของ Unique Values

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

เมธอดหลัก

MethodDescription
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