📌  相关文章
📜  从 javascript 中的数组中删除重复项(1)

📅  最后修改于: 2023-12-03 15:21:52.863000             🧑  作者: Mango

在 JavaScript 中删除数组中的重复项

在 JavaScript 中,我们经常需要对数组进行操作,其中处理重复项是一个常见的任务。以下是一些方法可以从数组中删除重复项。

使用 Set

Set 是一个新的数据结构,它允许存储唯一的值。因此,我们可以使用 Set 来快速和简单地从数组中删除重复项。

let arr = [1, 2, 3, 4, 1, 2, 5, 6, 5];
arr = [...new Set(arr)];
console.log(arr); // [1, 2, 3, 4, 5, 6]

以上用到展开运算符,将 Set 转换回数组。

使用 filter 方法

我们还可以使用 filter() 方法来删除数组中的重复项。filter() 方法接受一个函数作为参数,该函数接受第一个参数为数组中要调用的元素,第二个参数为从数组中调用该元素的索引位置。

let arr = [1, 2, 3, 4, 1, 2, 5, 6, 5];
arr = arr.filter((item, index) => arr.indexOf(item) === index);
console.log(arr); // [1, 2, 3, 4, 5, 6]

以上代码,indexOf()方法用于比较当前项目在原始数组中的第一个索引位置与其当前索引位置,并且 only keep unique value condition。

使用 reduce 方法

还有一种方法是使用 reduce() 方法来删除数组中的重复项。我们可以使用 reduce() 遍历数组,对每个元素进行比较,并将其存入新数组中。

let arr = [1, 2, 3, 4, 1, 2, 5, 6, 5];
arr = arr.reduce((uniqueArr, item) => {
    return uniqueArr.includes(item) ? uniqueArr : [...uniqueArr, item]
}, []);
console.log(arr); // [1, 2, 3, 4, 5, 6]

以上代码,我们创建了一个新的数组 uniqueArr 用于存储唯一的元素,并使用 includes() 方法来检查当前项目是否存在于 uniqueArr 中。

总结

以上是几种常见的方法来删除 JavaScript 数组中的重复项。每种方法都有其优点和缺点,具体取决于您的具体需求。使用 Set 可以是最简单的方法,但是该方法不支持所有浏览器,只适合于现代浏览器。您可以根据自己的需求进行选择。