การลบรายการที่ซ้ำกัน
หากต้องการลบ รายการซ้ำ ในอาร์เรย์ เรามี วิธีเชิงตรรกะ . มากมาย แต่จาวาสคริปต์ขั้นสูงได้จัดเตรียมวิธีการบางอย่างไว้เพื่อให้งานการลบรายการที่ซ้ำกันกลายเป็นเรื่องง่าย วิธีการบางส่วนคือ 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