การลบรายการที่ซ้ำกัน
หากต้องการลบ รายการซ้ำ ในอาร์เรย์ เรามี วิธีเชิงตรรกะ . มากมาย แต่จาวาสคริปต์ขั้นสูงได้จัดเตรียมวิธีการบางอย่างไว้เพื่อให้งานการลบรายการที่ซ้ำกันกลายเป็นเรื่องง่าย วิธีการบางส่วนคือ set() และ ตัวกรอง() . เพื่อความเข้าใจที่ดีขึ้น เรามาคุยกันทีละวิธี
Set()
การใช้งานที่สำคัญของ set() วิธีคืออนุญาตเฉพาะ ค่าที่ไม่ซ้ำ . กล่าวอีกนัยหนึ่ง มันจะลบรายการที่ซ้ำกันโดยอัตโนมัติและทำให้งานง่ายสำหรับเรา Set() เมธอดจะไม่ใช้ตรรกะใดๆ ในการลบรายการที่ซ้ำกัน
ตัวอย่าง
ในตัวอย่างต่อไปนี้ ซ้ำ ในอาร์เรย์ที่ให้มาถูกลบออกโดยไม่มีวิธีการเชิงตรรกะโดยใช้ set() กระบวนการ.
<html> <body> <script> var dupNames = ['John', 'Ram', 'Rahim', 'Remo', 'Ram', 'Rahim']; var uniArr = [...new Set(dupNames)]; document.write("Before removing :" +" "+ dupNames); document.write("</br>"); document.write("After using set() method :" +" "+ uniArr); </script> </body> </html>
ผลลัพธ์
Before removing : John,Ram,Rahim,Remo,Ram,Rahim After using set() method : John,Ram,Rahim,Remo
ตัวกรอง ()
ในตัวอย่างต่อไปนี้ การใช้ filter() วิธีการตรวจสอบแต่ละองค์ประกอบไม่ว่าจะทำซ้ำสองครั้งหรือมากกว่า หากพบองค์ประกอบใดๆ ซ้ำ 2 ครั้งขึ้นไป จะอนุญาตเพียงค่าเดียวและแสดงตามที่แสดงในผลลัพธ์
ตัวอย่าง
<html> <body> <script> var dupnam = ['John', 'Ram', 'Rahim', 'Remo', 'Ram', 'Rahim']; var x = (dupname) => dupname.filter((v,i) => dupname.indexOf(v) === i) document.write("Before removing : " +" "+ dupname); document.write("</br>"); document.write("After filter() method :" +" "+x(dupname)); </script> </body> </html>
ผลลัพธ์
Before removing : John,Ram,Rahim,Remo,Ram,Rahim After filter() method : John,Ram,Rahim,Remo