set
最简单
const arr = [1, 2, 3, 4, 5, 1, 2];
const deduplicatedArr = [...new Set(arr)];
console.log(deduplicatedArr); // [1, 2, 3, 4, 5]
filter + indexOf
const deduplicatedArr = arr.filter((item, index) => {
return arr.indexOf(item) === index;
});
map
Map数据结构的key不能重复的特性,遍历原数组并将元素作为Map的key存储,并判断是否已经存在,从而去重。
const map = new Map();
const deduplicatedArr = arr.filter((item) => !map.has(item) && map.set(item, true));