Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

จะค้นหารายการที่ซ้ำกันในอาร์เรย์โดยใช้เมธอด set () และ filter () ใน JavaScript ได้อย่างไร


การลบรายการที่ซ้ำกัน

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