📅  最后修改于: 2023-12-03 15:17:00.675000             🧑  作者: Mango
在日常编程中,数组中存在重复项是很常见的。本篇文章将介绍如何使用JS从数组中删除重复项。
使用Set可以快速地去除数组中所有的重复项。
const arr = [1, 2, 3, 3, 4, 5, 5];
const newArr = [...new Set(arr)];
console.log(newArr); // [1, 2, 3, 4, 5]
解释:
注意,Set返回的是一个迭代器对象,所以需要使用扩展运算符转换为新数组。
使用reduce方法可以遍历数组并逐步构建一个新数组,将重复的项过滤掉。
const arr = [1, 2, 3, 3, 4, 5, 5];
const newArr = arr.reduce((acc, curr) => {
if (!acc.includes(curr)) {
return [...acc, curr];
}
return acc;
}, []);
console.log(newArr); // [1, 2, 3, 4, 5]
解释:
使用filter方法可以对数组中的每一项进行过滤,只保留符合条件的项。为了去除重复项,我们可以筛选出索引值与当前值相等的项。
const arr = [1, 2, 3, 3, 4, 5, 5];
const newArr = arr.filter((curr, index) => {
return arr.indexOf(curr) === index;
});
console.log(newArr); // [1, 2, 3, 4, 5]
解释:
这种方法比较慢,因为indexOf方法的时间复杂度是O(n),需要遍历整个数组找到当前项的位置。
以上就是三种常见的方法,可以快速地去除数组中的重复项。希望本篇文章能帮助到大家。