如何利用 JavaScript 中的 set() 和 filter() 方法找出陣列中的重複項?


刪除重複項

為了刪除陣列中的重複項,我們可以採用許多邏輯方法,但高階的 JavaScript 提供了一些方法,使刪除重複項的任務變得非常簡單。其中一些方法是set()filter()。為了更好地理解,讓我們分別討論每種方法。

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

在下面的示例中,採用 filter() 方法仔細檢查每個元素是否重複了兩次或更多次。如果發現任何元素重複了兩次或更多次,則只允許保留它的一個值,並將其顯示在輸出中。

示例

線上演示

<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

上次更新: 30-Jul-2019

1K+ 瀏覽量

開啟你的職業生涯

完成此課程以獲得認證

開始
廣告
© . All rights reserved.