js去重真的是面试必考啊。
es6 set
function duplicate(arr){
return [...new Set(arr)]
}
indexOf下标判断,lastIndexOf也可以
function duplicate2(arr){
let res=[];
arr.forEach((item)=>{
if(res.indexOf(item)==-1){
res.push(item)
}
});
return res;
}
对象的键值
function duplicate3(arr) {
let res=[],obj={};
arr.forEach((item)=>{
if(!obj[item]){
obj[item]=1;
res.push(item)
}
});
return res
}
includes
function duplicate4(arr){
let res=[];
arr.forEach(item =>{
res.includes(item) ? '' : res.push(item)
});
return res
}
filter+includes
function duplicate5(arr){
let res=[];
arr.filter(item=>{
return res.includes(item) ? '' : res.push(item)
});
return res;
}
还要先排序
function duplicate6(arr){
arr=arr.sort();
let res=[arr[0]];
arr.forEach(item =>{
if(item!==res[res.length-1]){
res.push(item)
}
})
}