这个问题已经讨论过了,你的答案也就是上次讨论的结果。
Array.prototype.unique = function()
{
  for(var a={}, i=this.length-1; i>-1; i--)
  {
    if(typeof(a[this[i]])=="undefined") a[this[i]] = 1;
  }
  this.length=0;
  for(i in a) this[this.length] = i; return this;
};

解决方案 »

  1.   

    meizz:我需要的结果是{b,c,d,f,g,h},注意不是{a,b,c,d,f,g,h}。
      

  2.   

    各位老大 var a={} 这是什么意思啊?
      

  3.   

    <script language="javascript">
    Array.prototype.unique2 = function() 

      for(var a={}, b={}, i=0, n=this.length; i<n; i++) 
      { 
        if(typeof(b[this[i]])!="undefined") continue;
        if(typeof(a[this[i]])=="undefined") a[this[i]] = 1; 
        else{b[this[i]]=1; delete a[this[i]]}
      } 
      this.length=0; 
      for(i in a) this[this.length] = i; return this; 
    };   var a = new Array(1,2,3,4);
    var b = new Array(2,3,5,7);
    var c = a.concat(b).unique2();
    alert(c);
    </script>
      

  4.   

    我仔细看了下感觉这样就行]<script language="javascript">
    Array.prototype.unique2 = function() 

      for(var a={},  i=0, n=this.length; i<n; i++) 
      {     
        if(typeof(a[this[i]])=="undefined") a[this[i]] = 1; 
        else{ delete a[this[i]]}
      } 
      this.length=0; 
      for(i in a) this[this.length] = i; return this; 
    };   var a = new Array(1,2,3,4);
    var b = new Array(2,3,5,7);
    var c = a.concat(b).unique2();
    alert(c);
    </script>
      

  5.   

    代码多了个],meizi前辈给看下,最近项目里用到了你写的那棵树,在此表示谢意
      

  6.   

    meizz 正解<script language="javascript">
    Array.prototype.unique2 = function() 

      for(var a={}, b={}, i=0, n=this.length; i<n; i++) 
      { 
        if(typeof(b[this[i]])!="undefined") continue;
        if(typeof(a[this[i]])=="undefined") a[this[i]] = 1; 
        else{b[this[i]]=1; delete a[this[i]]}
      } 
      this.length=0; 
      for(i in a) this[this.length] = i; return this; 
    };   var a = new Array(1,2,3,4);
    var b = new Array(2,3,5,7);
    var c = a.concat(b).unique2();
    alert(c);
    </script>
    woodfans的代码就不行了,如果重复次数是3次,5次……就过滤不了了,比如
    var a = new Array(1,2,3,3);
    var b = new Array(2,2,3,4);