1.ES6 Set去重
function unique(arr){
return Array.from(new Set(arr))
}
2.splice去重
function unique(arr){
for(let i=0;i<arr.length;i++){
for(let j=i+1;j<arr.length;j++){
if(arr[i]===arr[j]){
arr.splice(j,1);
j--;
}
}
}
return arr
}
3.indexOf去重
function unique(arr){
if(!Array.isArray(arr)){
return
}
var array = []
for(let i=0;i<arr.length;i++){
if(array.indexOf(arr[i])=== -1){
array.push(arr[i])
}
}
return array
}
4.利用对象的属性不能相同的特性去重
function unique(arr){
if(!Array.isArray(arr)){
return
}
var array = []
var obj = {}
for(let i=0;i<arr.length;i++){
if(!obj[arr[i]]){
array.push(arr[i])
obj[arr[i]] = 1
}
}
return array
}
5.利用includes
function unique(arr){
if(!Array.isArray(arr)){`在这里插入代码片`
return
}
var array = []
for( let i=0;i<arr.lengthli++){
if(!array.includes(arr[i])){
array.push(arr[i])
}
}
return array
}
6.利用filter
function unique(arr){
return arr.filter(function(item,index,arr){
return arr.indexOf(item) === index
})
}
7.Map数据结构去重
function unique(arr){
let map = new Map()
let array = []
for(let i=0;i<arr.lengthli++){
if(map.has(arr[i])){
map.set(arr[i],true)
}else {
map.set(arr[i],false)
array.push(arr[i])
}
}
return array
}