Computer >> Máy Tính >  >> Lập trình >> Javascript

Làm cách nào để tìm các bản sao trong một mảng bằng cách sử dụng các phương thức set () và filter () trong JavaScript?

Xóa các bản sao

Để xóa bản sao trong một mảng, chúng ta có nhiều phương thức logic , nhưng javascript nâng cao đã cung cấp một số phương pháp để công việc loại bỏ các bản sao trở nên rất đơn giản. Một số phương pháp đó là set () bộ lọc () . Để hiểu rõ hơn, hãy 'thảo luận riêng từng phương pháp.

Đặt ()

Việc sử dụng quan trọng của set () phương pháp là nó chỉ cho phép giá trị duy nhất . Nói cách khác, nó sẽ tự động loại bỏ các bản sao và giúp chúng tôi thực hiện nhiệm vụ dễ dàng. Set () phương pháp này sẽ không áp dụng bất kỳ cách tiếp cận hợp lý nào trong việc xóa các bản sao.

Ví dụ

Trong ví dụ sau, bản sao trong mảng được cung cấp đã bị xóa mà không có bất kỳ cách tiếp cận logic nào bằng cách sử dụng set () phương pháp.

<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>

Đầu ra

Before removing : John,Ram,Rahim,Remo,Ram,Rahim
After using set() method : John,Ram,Rahim,Remo


filter ()

Trong ví dụ sau, sử dụng filter () mỗi phần tử được xem xét kỹ lưỡng cho dù nó được lặp lại hai hay nhiều lần. Nếu bất kỳ phần tử nào được tìm thấy lặp lại hai lần trở lên thì chỉ một giá trị của nó được phép và hiển thị như được hiển thị trong đầu ra.

Ví dụ

<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>

Đầu ra

Before removing : John,Ram,Rahim,Remo,Ram,Rahim
After filter() method : John,Ram,Rahim,Remo