javascript数组去重方法
一. 利用双层for循环去重
var arr=[1,1,2,3,2,3,4,4,5,5]
function unique(arr){
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)
j--
}
}
}
}
unique(arr)
console.log(arr)
结果:
二. 利用indexOf( )去重
var arr=[1,1,2,3,2,3,4,4,5,5]
function unique(arr){
var newArr = []
for(var i=0;i<arr.length;i++){
if(newArr.indexOf(arr[i])===-1){
newArr.push(arr[i])
}
}
return newArr
}
var res = unique(arr)
console.log(res)
结果:
三. 利用lastIndexOf( )去重
var arr=[1,1,2,3,2,3,4,4,5,5]
function unique(arr){
var newArr = []
for(var i=0;i<arr.length;i++){
if(newArr.lastIndexOf(arr[i])===-1){
newArr.push(arr[i])
}
}
return newArr
}
var res = unique(arr)
console.log(res)
结果:
四. 利用includes去重
var arr=[1,1,2,3,2,3,4,4,5,5]
function unique(arr){
var newArr = []
for(var i=0;i<arr.length;i++){
if(!newArr.includes(arr[i]){
newArr.push(arr[i])
}
}
return newArr
}
var res = unique(arr)
console.log(res)
结果:
四. 利用forEach+indexOf去重
var arr=[1,1,2,3,2,3,4,4,5,5]
function unique(arr){
var newArr = []
arr.forEach(function(item){
if(newArr.indexOf(item)===-1){
newArr.push(item)
}
})
return newArr
}
var res = unique(arr)
console.log(res)
结果:
五. 利用forEach+includes去重
var arr=[1,1,2,3,2,3,4,4,5,5]
function unique(arr){
var newArr = []
arr.forEach(function(item){
if(!newArr.includes(item)){
newArr.push(item)
}
})
return newArr
}
var res = unique(arr)
console.log(res)
结果:
六. 利用filter+includes去重
var arr=[1,1,2,3,2,3,4,4,5,5]
function unique(arr){
var newArr = []
arr.filter(function(item){
return newArr.includes(item)?'':newArr.push(item)
})
return newArr
}
var res = unique(arr)
console.log(res)
结果:
七. 利用filter+indexOf去重
var arr=[1,1,2,3,2,3,4,4,5,5]
function unique(arr){
var newArr = []
arr.filter(function(item){
return newArr.indexOf(item)===-1?newArr.push(item):''
})
return newArr
}
var res = unique(arr)
console.log(res)
结果:
八.利用set去重
var arr=[1,1,2,3,2,3,4,4,5,5]
var set = new Set(arr)
console.log(set)
console.log(Array.from(set))
console.log([...set])
结果: