老题了。。
虽然网上一搜一大堆,还是自己想了想,自己动笔写了几种。
//1.利用下标indexOf
arr=[1,1,1,3,45,6,3,5,6,5]
function unique1(arr){
var arrUnique = []
for(var i=0,len=arr.length;i<len;i++){
if(arrUnique.indexOf(arr[i]) < 0){
arrUnique.push(arr[i])
}
}
return arrUnique
}
unique1(arr)
//2.先排序,相邻元素比较去重
arr=[1,1,1,3,45,6,3,5,6,5]
function unique2(arr){
arr = arr.sort(function(a,b){
return a - b
})
for(i=0;i<arr.length;i++){
if(arr[i] == arr[i+1]){
arr.splice(i,1)
i--
}
}
return arr
}
unique2(arr)
//3.暴力循环
arr=[1,1,1,3,45,6,3,5,6,5]
function unique3(arr){
var arrUnique = []
for(var i=0;i<arr.length;i++){
for(j=i+1;j<arr.length;j++){
if(arr[i]===arr[j]){
j = ++i
}
}
arrUnique.push(arr[i])
}
return arrUnique
}
unique3(arr)
//4.利用对象属性去重
arr=[1,1,1,3,45,6,3,5,6,5]
function unique4(arr){
var obj = {},
arrUnique = []
for(var i=0;i<arr.length;i++){
if(!obj[arr[i]]){
obj[arr[i]] = 1
arrUnique.push(arr[i])
}
}
return arrUnique
}
unique4(arr)
// 5.includes方法
arr=[1,1,1,3,45,6,3,5,6,5]
function unique5(arr){
var arrUnique = []
arr.forEach(item => {
if(!arrUnique.includes(item)){
arrUnique.push(item)
}
})
return arrUnique
}
unique5(arr)
//6. set方法
arr=[1,1,1,3,45,6,3,5,6,5]
arrUnique = new Set(arr)
网友评论