var arr = [1,2,1,1,1,"1",2,3,4,3,3,4,4,4,5,5,5,5,null,null,undefined,undefined,{},{},NaN,NaN,'NaN',"NaN",[],[]];
function unique(arr){
var newArr = [];
var newArr = arr.filter((item,index,self)=>self.indexOf(item) === index);
return newArr;
}
function unique1(arr){
var newArr = [];
for(var i = 0;i<arr.length;i++){
if(newArr.indexOf(arr[i]) == -1){
newArr.push(arr[i])
}
}
return newArr
}
function unique2(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
}
function unique3(arr) {
var obj = {};
return arr.filter(function(item, index, arr){
return obj.hasOwnProperty(typeof item + item) ? false : (obj[typeof item + item] = true)
})
}
function unique4(arr){
var obj = {};
var newArr = [];
arr.forEach(item => {
if(!obj.hasOwnProperty(typeof item + item)){
newArr.push(item)
obj[typeof item + item] = true;
}else{
obj[typeof item + item] = false;
}
});
return newArr;
}
console.log('1',unique(arr))
console.log('2',[...new Set(arr)])
console.log('3',Array.from(new Set(arr)))
console.log('4',unique1(arr))
console.log('5',unique2(arr))
console.log('6',unique3(arr))
console.log('7',unique4(arr))
数组去重比较
最新推荐文章于 2024-07-14 12:56:18 发布