JavaScript:如何从数组中过滤掉非唯一值?
数组是用于以结构化格式存储数据的数据结构。我们可以将数据存储在数组中,并使用其索引检索它们。这些索引充当这些值的键。
在本文中,我们将过滤掉非唯一值,并返回仅包含唯一非重复元素的数组。
方法
在一个包含唯一元素的数组中,我们将获取所有元素,然后将它们与之前的元素集合进行比较。如果任何元素已经存在,则表示它是重复元素,我们将将其从结果数组中删除。
在本文中,我们将使用filter() **方法**和forEach() **方法**来过滤掉非唯一值。
方法1 - 使用filter()方法
filter()方法返回满足单次出现条件的元素。我们将使用JavaScript提供的indexOf()功能来删除所有重复元素。
语法
var newArr=initialArr.filter((value ,index)=>{
// conditions with return
});示例1
在下面的示例中,我们将删除所有重复的数字
# index.html
<!DOCTYPE html>
<html>
<head>
<title>Filtering the Non-unique characters</title>
</head>
<body>
<h1 style="color: green;">
Welcome To Tutorials Point
</h1>
<script>
var array=[1, 1, 2, 3, 3, 5, 6, 7, 7, 7, 8, 9];
console.log("Before filtering non unique values: " + array);
var unique=array.filter((value, index) => {
return array.indexOf(value) === array.lastIndexOf(value);
});
console.log("After filtering non unique values: " + unique);
</script>
</body>
</html>输出
成功执行上述程序后,浏览器将显示以下结果。
Welcome To Tutorials Point
并且在控制台中,您将找到结果,请参见下面的屏幕截图 -

方法2 - 使用for()循环
使用**for()**循环只会将唯一元素推入数组。我们将使用**indexOf()**方法来检查元素的第一次和最后一次出现是否相同。
示例2
在下面的示例中,我们将删除所有重复的数字
# index.html
<!DOCTYPE html>
<html>
<head>
<title>Filtering the Non-unique characters</title>
</head>
<body>
<h1 style="color: green;">
Welcome To Tutorials Point
</h1>
<script>
var array = [1, 1, 2, 3, 3, 5, 6, 7, 7, 7, 8, 9];
console.log("Before filtering: " + array);
var unique = [];
for (let i = 0; i < array.length; i++) {
if (array.lastIndexOf(array[i]) === array.indexOf(array[i])) {
unique.push(array[i]);
}
}
console.log("After filtering: " + unique);
</script>
</body>
</html>输出

广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP