如何从 JavaScript 数组中删除重复元素?

在 JavaScript 中,有多种方法可以从数组中删除重复元素。在本文中,我们将探讨一些删除重复元素的顶级方法。
使用filter()方法
filter()方法使用传递的条件创建一个新的元素数组。这将仅包含作为此过滤器方法的一部分返回 true 的元素。因此,要实现删除重复元素,我们只需在 filter() 方法中添加条件即可,它会完成剩下的工作。
#过滤器.js
<script>
var arr = ["steve", "mark", "mark","bill", "steve", "
function removeDuplicates(arr) {
return arr.filter((item,index) => arr.indexOf(item) === index);
console.log(removeDuplicates(arrr));
</script>输出
"steve", "mark", "bill"
使用 Set() 方法
Set 是唯一值的集合。为了从数组中删除元素,我们首先需要将重复数组转换为 Set。
这个新 Set 将隐式删除重复元素,然后将其转换回集合到一个数组。
#filter.js
<script>
var arr = ["steve", "mark", "mark","bill", "steve", "bill"];
function removeDuplicates(arr) {
let uniqueArr = [...new Set(arr)];
return uniqueArr;
}
console.log(removeDuplicates(arr));
</script>输出
"steve", "mark", "bill"
使用reduce()方法
reduce()方法用于减少数组的元素,然后将它们组合成一个基于用户传递的某些减速器函数的最终数组。在下面的示例中,我们将使用 reduce() 方法从数组中删除或移除重复元素。
# filter.js
<script>
var arr = ["steve", "mark", "mark","bill", "steve", "bill"];
function removeDuplicates(arr) {
var unique = arr.reduce(function (acc, curr) {
if (!acc.includes(curr))
acc.push(curr);
return acc;
}, []);
return unique;
}
console.log(removeDuplicates(arr));
</script>输出
"steve", "mark", "bill"
使用 forEach() 和 include()
如果数组中存在某个元素,include() 方法将返回 true,否则返回 false。在下面的示例中,我们使用 forEach() 迭代数组的元素,并仅当其中不存在相同元素时才将其添加到新数组中。
#filter.js
<script>
var arr = ["steve", "mark", "mark","bill", "steve", "bill"];
function removeDuplicates(arr) {
let uniqueArr = [];
chars.forEach((c) => {
if (!uniqueChars.includes(c)) {
uniqueChars.push(c);
}
});
return uniqueArr;
}
console.log(removeDuplicates(arr));
</script>输出
"steve", "mark", "bill"
javascript