数组去重

128 阅读1分钟
 Array.prototype.unique=function(){
        var temp=[];
        for(var i=0;i<this.length;i++){
            //判断新数组中是否存在相同的数字,不存在=>放入
            if(temp.indexOf(this[i])===-1){
                temp.push(this[i]);
            }
        }
        return temp;
    }
Array.prototype.unique=function(){
        var temp=[];
        for(var i=0;i<this.length;i++){
            //判断数组的第i项第一次出现的位置 位置相同=>放入
            if(this.indexOf(this[i])===i){
                temp.push(this[i]);
            }
        }
        return temp;
    }
Array.prototype.unique=function(){
        //排序,为了将相同的值放在一起
        this.sort();
        var temp=[];
        for(var i=0;i<this.length;i++){
            //遍历排序后的数组,如果当前值与前一位不相同=>放入
            if(this[i]!==temp[temp.length-1]){
                temp.push(this[i]);
                console.log(temp);
            }
        }
        return temp;
    }
 Array.prototype.unique=function(){
        //创建空对象承接,利用对象属性不能重复的特点
        var temp={};var arr=[];
        for(var i=0;i<this.length;i++){
            //如果对象中没有这个属性=>放入
            if(!temp[this[i]]){
                //给当前属性赋值,true就是属性值
                temp[this[i]]=true;
                arr.push(this[i])
            }
        }
        return arr;
    }
var arr=[3,4,2,5,2,1,1,4];
        //利用数组的filter方法
    var temp=arr.filter(function(item,index,self){
        return self.indexOf(item)===index
    })    
function unique(arr){
        return [...new Set(arr)]
    }