基本思路:
1.es6 Set数据结构
var array = [1,1,1,2,3,3,3,4,4,5,5,5,6]
function unique(arr){
return Array.from(new Set(arr))
}
b=unique(array)
console.log(b)
2.内外双重比较
var array = [1,1,1,2,3,3,3,4,4,5,5,5,6]
function unique(arr){
var result = []
for(var i=0,len=arr.length;i<len;i++){
for(var j=0,res=result.length;j<res;j++){
if(arr[i] === result[j]){
break
}
}
if(j===res){
result.push(arr[i])
}
}
return result
}
b=unique(array)
console.log(b)
3.内外比较splice法
var array = [1,1,1,2,3,3,3,4,4,5,5,5,6]
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--
}
}
}
return arr
}
b=unique(array)
console.log(b)
4.indexOf 法
var array = [1,1,1,2,3,3,3,4,4,5,5,5,6]
function unique(arr){
var res = []
for(var i=0;i<arr.length;i++){
if(res.indexOf(arr[i]) === -1){
res.push(arr[i])
}
}
return res
}
b=unique(array)
console.log(b)
类似方法
var array = [1,1,1,2,3,3,3,4,4,5,5,5,6]
function unique(arr){
return arr.filter(function(item,index,array){
return array.indexOf(item) === index
})
}
b=unique(array)
console.log(b)
类似方法
var array = [1,1,1,2,3,3,3,4,4,5,5,5,6]
function unique(arr){
var result = []
arr.forEach(function(item){
if(result.indexOf(item) === -1)
result.push(item)
})
return result
}
b=unique(array)
console.log(b)
5.排序去重法
var array = [1,1,1,2,3,3,3,4,4,5,5,5,6]
function unique(arr){
var result = []
var newArr = arr.concat().sort()
var temp
for(var i=0;i<newArr.length;i++){
if(!i || temp !== newArr[i]){
result.push(newArr[i])
}
temp = newArr[i]
}
return result
}
b=unique(array)
console.log(b)
6.对象方法
var array = [1,1,1,2,3,3,3,4,4,5,5,5,6]
function unique(arr){
var obj = {}
return arr.filter(function(item,index,array){
return obj.hasOwnProperty(item)?false:obj[item]=true
})
}
b=unique(array)
console.log(b)
类似
var array = [1,1,1,2,3,3,3,4,4,5,5,5,6]
function unique(arr){
var obj = {}
for(var i=0;i<arr.length;i++){
if(!obj[arr[i]]){
obj[arr[i]]=true
}
}
return Object.keys(obj).map(function(item){
return parseInt(item)
})
}
b=unique(array)
console.log(b)
网友评论