13 คะแนน โดย xguru 2024-06-29 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ตั้งแต่ 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 ความคิดเห็น

 
carnoxen 2024-06-29

มีการเพิ่มฟังก์ชันที่ให้ความรู้สึกแบบ "เซต" มากขึ้นเข้ามาแล้วสินะ