js怎么去重数组
原创在JavaScript中,有多种方法可以用来去除数组中的重复元素。下面是一些常见的方法:
1. 使用Set
let arr = [1, 2, 2, 3, 4, 4, 5];
let uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // 输出 [1, 2, 3, 4, 5]
2. 使用filter
let arr = [1, 2, 2, 3, 4, 4, 5];
let uniqueArr = arr.filter((value, index, self) => {
return self.indexOf(value) === index;
});
console.log(uniqueArr); // 输出 [1, 2, 3, 4, 5]
3. 使用reduce
let arr = [1, 2, 2, 3, 4, 4, 5];
let uniqueArr = arr.reduce((accumulator, current) => {
return accumulator.includes(current) ? accumulator : [...accumulator, current];
}, []);
console.log(uniqueArr); // 输出 [1, 2, 3, 4, 5]
4. 使用Map
let arr = [1, 2, 2, 3, 4, 4, 5];
let map = new Map();
let uniqueArr = arr.filter(item => !map.has(item) && map.set(item, 1));
console.log(uniqueArr); // 输出 [1, 2, 3, 4, 5]
5. 使用forEach和Array.from
let arr = [1, 2, 2, 3, 4, 4, 5];
let uniqueArr = Array.from(new Set(arr));
console.log(uniqueArr); // 输出 [1, 2, 3, 4, 5]
在这些方法中,使用Set是最明了和最直观的,基于它直接创建一个没有重复元素的集合。但是,如果数组中的元素是对象或者需要保持元素的原始顺序,那么大概需要选择其他方法。