方法一

    1. ~function(){
    2. function unique(){
    3. let obj={},
    4. _this=this;
    5. for(let i=0;i<_this.length;i++){
    6. let iten=_this[i];
    7. // in hasOwnProperty typeof....
    8. if(obj.hasOwnProperty(item)){
    9. _this[i]=_this[_this.length-1];
    10. _this.length--;
    11. i--;
    12. continue;
    13. }
    14. obj[item]=item;
    15. }
    16. obj=null;
    17. return _this;
    18. }
    19. Array.prototype.myUnique=unique;
    20. }();
    21. let ary=[12,23,12,1,3,13,12,34,45,12,23];
    22. ary.myUnique().sort((a,b)=>a-b);

    第二种

    1. ~function(){
    2. function unique(){
    3. let _this=this;
    4. //=>首先基于new Set实现数组去重(结果是Set的实例)
    5. _this=new Set(_this);
    6. //=>再基于Array.from把类数组等变为数组
    7. _this=Array.from(_this);
    8. return _this;
    9. }
    10. Array.prototype.myUnique=unique;
    11. }();
    12. let ary = [12,23,12,13,13,12,23,14,8];
    13. ary.myUnique().sort((a,b)=>a-b);

    第三种

    1. ~function(){
    2. function unique(){
    3. let _this=this;
    4. for(let i=0;i<_this.length-1;i++){
    5. let item=_this[i],
    6. next=_this.slice(i+1);
    7. if(next.includes(item)){
    8. _this.splice(i,1);
    9. i--;
    10. }
    11. }
    12. return _this;
    13. }
    14. Array.prototype.myUnique=unique;
    15. }();
    16. let ary = [12,23,12,13,13,12,23,14,8];
    17. ary.myUnique().sort((a,b)=>a-b);