数组去重

1,Array.prototype.unique1=function(){

  var n=[];

  for(var i=0;i<this.length;i++){//遍历原始数组

//indexOf()查找第一次出现的位置,也可以查找多个,没找到就返回-1.

    if(n.indexOf(this[i])==-1){//临时数组里查找原始数组的this[i],如果找不到就push 进去;

      n.push(this[i]);

    }

  }

  return n;

}

2.Array.prototype.unique2=function(){//最快的方法  

  var n={},r=[];                            //n 哈希表; r临时数组;

  for(var i=0;i<this.length;i++){//遍历原始数组

    if(!n[this[i]]){

      n[this[i]]=true;

      r.push(this[i]);

    }

  }

  return n;

}

3.Array.prototype.unique3=function(){

  var n=[this[0]];//结果数组

  for(var i=1;i<this.length;i++){//遍历原始数组,从第二项开始

    if(this.indexOf(this[i])==i){//原始数组中第一次出现的元素, 就push进临时数组n

      n.push(this[i]);

    }

  }

  return n;

}

4..Array.prototype.unique4=function(){

  this.sort();//先排序

  var re=[this[o]];

  for(var i=1;i<this.length;i++){//遍历原始数组,从第二项开始

    if(this[i]!==re[re.length-1]){

      re.push(this[i]);

    }

  }

  return re;

}

原文地址:https://www.cnblogs.com/alice-fee/p/5463579.html