数组去重的方法
1.双层for循环去重
let arr=[1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,0,9]
for(var i=0;i<arr.length;i++) {
for(var j=i+1;j<arr.length;j++) {
if(arr[i]==arr[j]) {
arr.splice(j,1)
}
}
}
console.log(arr);
2.利用ES6中的Set()去重
let arr=[1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,0,9]
var newArr=new Set(arr)
console.log(newArr);
let arr=[1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,0,9]
var newArr=[...new Set(arr)]
console.log(newArr);
3.indexOf()去重
let arr=[1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,0,9]
let newArr=[]
arr.forEach((val)=>{
if(newArr.indexOf(val)==-1) {
newArr.push(val)
}
})
console.log(newArr);
4.sort()去重
let arr=[1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,0,9]
let newArr=[]
arr.sort((a,b)=>{
return a-b
})
arr.forEach((val,index)=>{
if(val!=arr[index+1]) {
newArr.push(val)
}
})
console.log(newArr);
5.includes()去重
let arr=[1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,0,9]
let newArr=[]
for(var i=0;i<arr.length;i++) {
if(!newArr.includes(arr[i])) {
newArr.push(arr[i])
}
}
console.log(newArr);
6.Map()去重
let arr=[1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,0,9]
let map = new Map()
let newArr=[]
for(var i=0;i<arr.length;i++) {
if(map.has(arr[i])) {
map.set(arr[i],true)
}else {
map.set(arr[i],false)
newArr.push(arr[i])
}
}
console.log(newArr);
7.利用对象属性不能重复的特点进行去重
let arr=[1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,0,9]
var newArr=[]
var obj={}
for(var i = 0;i<arr.length;i++) {
if(!obj[arr[i]]) {
newArr.push(arr[i])
obj[arr[i]]=1
}else {
obj[arr[i]]++
}
}
console.log(newArr);