1. 使用Set:
let arr = [1, 2, 3, 3, 4, 5, 5];
let uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [ 1, 2, 3, 4, 5 ]
这种方法利用Set数据结构的特性,Set中的元素是唯一的,可以通过将数组转换为Set,然后将Set转回数组的方式实现数组去重。
2. 使用filter方法:
let arr = [1, 2, 3, 3, 4, 5, 5];
let uniqueArr = arr.filter((value, index, self) => {
return self.indexOf(value) === index;
});
console.log(uniqueArr); // [ 1, 2, 3, 4, 5 ]
这种方法使用filter方法遍历数组,对于每个元素,判断它在数组中第一次出现的索引和当前索引是否相等,相等则保留,否则过滤掉。
3. 使用reduce方法:
let arr = [1, 2, 3, 3, 4, 5, 5];
let uniqueArr = arr.reduce((prev, curr) => {
if (!prev.includes(curr)) {
prev.push(curr);
}
return prev;
}, []);
console.log(uniqueArr); // [ 1, 2, 3, 4, 5 ]
这种方法使用reduce方法遍历数组,对于每个元素,判断它是否已经在结果数组中存在,如果不存在则将其添加到结果数组中。
4. 使用Map:
let arr = [1, 2, 3, 3, 4, 5, 5];
let uniqueArr = Array.from(new Map(arr.map(item => [item, item])).values());
console.log(uniqueArr); // [ 1, 2, 3, 4, 5 ]
这种方法利用Map数据结构的特性,Map中的键是唯一的,可以通过遍历数组,将数组的每个元素作为Map的键和值,然后取出Map的值数组来实现去重。
5. 使用indexOf和forEach:
let arr = [1, 2, 3, 3, 4, 5, 5];
let uniqueArr = [];
arr.forEach(item => {
if (uniqueArr.indexOf(item) === -1) {
uniqueArr.push(item);
}
});
console.log(uniqueArr); // [ 1, 2, 3, 4, 5 ]
这种方法使用forEach方法遍历数组,对于每个元素,判断它在结果数组中是否已经存在,如果不存在则将其添加到结果数组中。
以上是几种常见的数组去重方法,可以根据具体情况选择适合的方法来使用,如有错,还请指正! ( OvO )