1. 使用 Set:
ES6 中新增的 Set 数据结构可以自动去重,可以将数组转换为 Set,再将 Set 转换为数组即可。
const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const uniqueArr = Array.from(new Set(arr));
console.log(uniqueArr); // [1, 2, 3, 4, 5]
或者
const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const uniqueArr=[...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4, 5]
2. 使用 filter 和 indexOf:
利用数组的 filter 方法和 indexOf 方法,遍历数组,筛选出不重复的元素。
const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const uniqueArr = arr.filter((item, index) => {
return arr.indexOf(item) === index;
});
console.log(uniqueArr); // [1, 2, 3, 4, 5]
3. 使用 reduce 和 includes:
利用数组的 reduce 方法和 includes 方法,遍历数组,将不重复的元素添加到新数组中。
const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const uniqueArr = arr.reduce((prev, curr) => {
if (!prev.includes(curr)) {
prev.push(curr);
}
return prev;
}, []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
4. 使用 Map:
利用 Map 数据结构,遍历数组,将不重复的元素作为键添加到 Map 中,再将 Map 转换为数组即可。
const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const map = new Map();
arr.forEach(item => {
if (!map.has(item)) {
map.set(item, true);
}
});
const uniqueArr = Array.from(map.keys());
console.log(uniqueArr); // [1, 2, 3, 4, 5]