利用ES6 Set去重(ES6中最常用)
const unique=(arr)=>{
return Array.from(new Set(arr));
}
利用indexOf去重
const unique=(arr)=>{
var newArr=[];
for(var elem of arr){
if(newArr.indexOf(elem)==-1){
newArr.push(elem);
}
}
return newArr;
}
利用对象的属性不能相同的特点进行去重
const unique=(arr)=>{
var hash={};
var newArr=[];
for(var elem of arr){
if(!hash.hasOwnProperty(elem)){
hash[elem]=1;
newArr.push(elem);
}
}
return newArr;
}
const unique=(arr)=>{
var hash={};
var newArr=[];
for(var elem of arr){
hash[elem]=1;
}
return hash;
for (var key in hash )
{
newArr.push(key)
}
return newArr;
}
利用filter
function unique(arr) {
return arr.filter(function(item, index, arr) {
return arr.indexOf(item, 0) === index;
});
}
利用Map数据结构去重
function unique(arr) {
let map = new Map();
let array = new Array();
for (let i = 0; i < arr.length; i++) {
if(map .has(arr[i])) {
map .set(arr[i], true);
} else {
map .set(arr[i], false);
array .push(arr[i]);
}
}
return array ;
}
console.log(unique([1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}]))