เมธอด Set ใหม่ของ JavaScript
(developer.mozilla.org)- ตั้งแต่ 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 ความคิดเห็น
มีการเพิ่มฟังก์ชันที่ให้ความรู้สึกแบบ "เซต" มากขึ้นเข้ามาแล้วสินะ