- ตั้งแต่ Firefox 127 เป็นต้นไป สามารถใช้เมธอด
Set ใหม่ได้ในเอนจินเบราว์เซอร์หลักส่วนใหญ่ ทำให้ใช้งานเมธอดเหล่านี้ได้แทบทุกที่โดยไม่ต้องพึ่ง Polyfill
- เมธอดเหล่านี้มีวิธีที่เหมาะสมที่สุดสำหรับการลบข้อมูลซ้ำ การเปรียบเทียบ การหาจุดร่วม ผลต่าง และเซตย่อย จึงไม่จำเป็นต้องเขียนขึ้นเอง
- สำหรับข้อมูลขนาดใหญ่ มีข้อได้เปรียบด้านประสิทธิภาพเมื่อเทียบกับ Array (ตราบใดที่ยอมรับได้ว่าไม่มีการรับประกันลำดับ)
- เมธอด
Set ใหม่: intersection(), union(), difference(), symmetricDifference(), isSubsetOf(), isSupersetOf(), isDisjointFrom() ซึ่งคืนค่าแบบบูลีนเพื่อบอกผลลัพธ์
Set ของ JavaScript คืออะไร?
Set คล้ายกับ Array แต่แต่ละค่าจะถูกเก็บได้เพียงครั้งเดียว
Set เป็นวิธีแบบ built-in ที่สะดวกในการสร้างคอลเลกชันที่ไม่ซ้ำกัน
- โดยทั่วไป การตรวจสอบว่ามีองค์ประกอบอยู่ใน
Set หรือไม่ มักเร็วกว่า Array
ยูเนียนของสองเซต
- เมธอด
union ใช้ตรวจสอบองค์ประกอบที่อยู่ใน “ชุดใดชุดหนึ่งหรือทั้งสองชุด” ได้
- ไม่ต้องมีการเขียนโค้ดเองเพื่อกำจัดข้อมูลซ้ำและทำการเปรียบเทียบ
อินเตอร์เซกชันของเซต
- เมธอด
intersection ใช้ตรวจสอบองค์ประกอบที่ซ้ำกันระหว่างสองเซตได้
- สามารถใช้เพื่อเน้นองค์ประกอบที่อยู่ใน “ทั้งสองเซตเท่านั้น”
ซิมเมตริกดิฟเฟอเรนซ์ของเซต
- เมธอด
symmetricDifference ช่วยให้ตรวจสอบองค์ประกอบที่อยู่ในเซตใดเซตหนึ่ง แต่ไม่อยู่ใน “ทั้งสองเซต” ได้
symmetricDifference ทำงานด้วยตรรกะตรงข้ามกับ intersection
ดิฟเฟอเรนซ์ของเซต
- เมธอด
difference ใช้ตรวจสอบองค์ประกอบที่อยู่ในเซตหนึ่ง แต่ไม่อยู่ในอีกเซตหนึ่งได้
- สามารถใช้เซตที่สร้างจาก
difference เพื่อเน้นรายการที่ไม่ปรากฏในอีกลิสต์หนึ่งได้
เซตย่อย เซตครอบ และเซตไม่ทับกัน
- เมธอด
isSubsetOf() และ isSupersetOf() จะไม่คืนค่าเป็นเซตใหม่ แต่คืนค่าแบบบูลีนเพื่อบอกสถานะหรือผลการตรวจสอบเชิงตรรกะ
- เมธอด
isDisjointFrom() ใช้ตรวจสอบได้ว่าสองเซตไม่มีองค์ประกอบร่วมกันหรือไม่
สรุป
- เมธอด
Set เป็นแนวคิดที่น่าสนใจและเข้าใจได้ไม่ยาก
- ผู้เขียนอยากให้มีการแบ่งปันวิธีใช้เมธอดเหล่านี้ในตัวอย่างจริงที่หลากหลายมากขึ้น
- หวังว่าจะนำเมธอด
Set ไปใช้ได้อย่างคุ้มค่าในโปรเจกต์ถัดไป
1 ความคิดเห็น
มีการเพิ่มฟังก์ชันที่ให้ความรู้สึกแบบ "เซต" มากขึ้นเข้ามาแล้วสินะ