Set เป็น abstract data type ที่เก็บค่าได้โดยไม่มีลำดับเฉพาะและไม่ซ้ำ เป็น computer implementation ของ mathematical finite set ต่างจาก collection types อื่น ที่แทนการ retrieve element เฉพาะ มักจะ test value สำหรับ membership ใน set
ควรใช้ Sets เมื่ออยากเก็บ unique elements ใน container ที่ order ไม่สำคัญ และหลักๆ อยากเช็ค membership ของ objects ต่างๆ Sets ยังมีประโยชน์ตอนทำ operations เช่น union, intersection, difference เหมือน mathematical sets
Set object ให้เก็บ unique values ของประเภทใดก็ได้ ไม่ว่าจะเป็น primitive values หรือ object references
หมายเหตุ - เนื่องจากแต่ละค่าใน Set ต้อง unique จึงจะตรวจสอบ value equality
การสร้างและใช้ Sets
let mySet = new Set(); mySet.add(1); mySet.add(1); mySet.add(1); // Added only once console.log(mySet.size) // Not considered equal mySet.add({}); mySet.add({}); console.log(mySet.size) let a = {}; mySet.add(a); mySet.add(a); // added once only console.log(mySet.size)ผลลัพธ์
1 3 4
สังเกตว่าออบเจ็กต์ที่เพิ่มไว้ไม่ถือว่าเท่ากัน เพราะอ้างอิง memory spaces ต่างกัน ทำให้ไม่เท่ากัน