如何使用 JavaScript 中的 set() 和 filter() 方法在数组中查找重复项?

javascriptobject oriented programmingfront end technology

删除重复项

要删除数组中的重复项,我们有许多逻辑方法,但高级 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

相关文章