一 Set
把数组扔到集合里面去重
let arr=[1,2,2,2,2,6];
const fun1=(array)=>[...new Set(array)]
console.log(fun1(arr));
二 Map
借助于Map去重,把数组的值作为map的索引
let arr=[1,2,2,2,2,6];
const fun2=(array)=>{
let map=new Map();
array.forEach(item=>map.set(item,1));
return [...map.keys()];
}
console.log(fun2(arr));
三 filter
借助于indexOf,例如arr中所有2的arr.indexOf(2)的值都为1,但是他们在数组中的位置分别为1,2,3,4。因此利用filter,仅留下两个index相等的2。
let arr=[1,2,2,2,2,6];
const fun3=(array)=>array.filter((item,index)=>arr.indexOf(item)===index);
console.log(fun3(arr));
四 reduce
借助temp数组去重
let arr=[1,2,2,2,2,6];
const fun4=(array)=> array.reduce((temp,item)=>temp.includes(item)?temp:[...temp,item],[])
console.log(fun4(arr));
五 排序去重
借助于sort函数,先对数组进行排序,然后使用filter过滤掉相邻相同数字
let arr=[6,2,2,2,2,1];
const fun5=(array)=>array.sort().filter((item,index)=>item!==array[index+1]);
console.log(fun5(arr));