方法一
~function(){
function unique(){
let obj={},
_this=this;
for(let i=0;i<_this.length;i++){
let iten=_this[i];
// in hasOwnProperty typeof....
if(obj.hasOwnProperty(item)){
_this[i]=_this[_this.length-1];
_this.length--;
i--;
continue;
}
obj[item]=item;
}
obj=null;
return _this;
}
Array.prototype.myUnique=unique;
}();
let ary=[12,23,12,1,3,13,12,34,45,12,23];
ary.myUnique().sort((a,b)=>a-b);
第二种
~function(){
function unique(){
let _this=this;
//=>首先基于new Set实现数组去重(结果是Set的实例)
_this=new Set(_this);
//=>再基于Array.from把类数组等变为数组
_this=Array.from(_this);
return _this;
}
Array.prototype.myUnique=unique;
}();
let ary = [12,23,12,13,13,12,23,14,8];
ary.myUnique().sort((a,b)=>a-b);
第三种
~function(){
function unique(){
let _this=this;
for(let i=0;i<_this.length-1;i++){
let item=_this[i],
next=_this.slice(i+1);
if(next.includes(item)){
_this.splice(i,1);
i--;
}
}
return _this;
}
Array.prototype.myUnique=unique;
}();
let ary = [12,23,12,13,13,12,23,14,8];
ary.myUnique().sort((a,b)=>a-b);