📅  最后修改于: 2023-12-03 14:52:43.678000             🧑  作者: Mango
在 JavaScript 开发中,有时我们需要从数组中删除重复的元素。这可以通过以下几种方法实现。
Set 对象是 ES6 中引入的一种新的数据类型,可用于存储唯一值。我们可以将数组转换为 Set 对象,然后再将其转换回数组,这将消除重复项。
const arr = [1, 2, 3, 3, 4, 4, 5];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4, 5]
我们可以使用 filter() 方法来遍历数组,在遍历过程中,将重复项过滤掉。此方法的效率相对较低,但对于小型数组可以满足需求。
const arr = [1, 2, 3, 3, 4, 4, 5];
const uniqueArr = arr.filter((item, index) => {
return arr.indexOf(item) === index;
});
console.log(uniqueArr); // [1, 2, 3, 4, 5]
我们也可以使用 reduce() 方法来遍历数组,在遍历过程中,用一个新数组来存储不重复的元素,从而得到新的不含重复元素的数组。
const arr = [1, 2, 3, 3, 4, 4, 5];
const uniqueArr = arr.reduce((prev, cur) => prev.includes(cur) ? prev : [...prev, cur], []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
以上三种方法都能实现在 JavaScript 中从数组中删除重复项,面对不同情况,使用不同的方法更具效率。建议首选使用 Set 对象方法适用于大型数组,并注意浏览器支持问题。filter() 和 reduce() 方法虽然效率较低,但小型数组可以满足需求。