Set
可以使用ES6中的Set数据结构进行去重。Set对象是一组不重复的值的集合,可以轻松地从数组中删除重复项。
const arr = [1, 2, 2, 3, 3, 3];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3]
filter
使用filter()方法和indexOf()方法可以创建一个新数组,其中包含原始数组中不重复的元素。
const arr = [1, 2, 2, 3, 3, 3];
const uniqueArr = arr.filter((element, index, array) => {
return array.indexOf(element) === index;
});
console.log(uniqueArr); // [1, 2, 3]
reduce
可以使用reduce()方法和includes()方法来创建一个新数组,其中包含原始数组中不重复的元素。
const arr = [1, 2, 2, 3, 3, 3];
const uniqueArr = arr.reduce((result, element) => {
if (!result.includes(element)) {
result.push(element);
}
return result;
}, []);
console.log(uniqueArr); // [1, 2, 3]
Map
可以使用Map数据结构进行去重,Map对象是一组键值对的集合,其中键是唯一的,可以使用Map来存储不重复的值。
const arr = [1, 2, 2, 3, 3, 3];
const uniqueArr = [];
const map = new Map();
for (let i = 0; i < arr.length; i++) {
if (!map.has(arr[i])) {
map.set(arr[i], true);
uniqueArr.push(arr[i]);
}
}
console.log(uniqueArr); // [1, 2, 3]