JS 消除数组中重复项

 <html>
    <title>
    </title>
    <head>
        <script>
            var ary = new Array("111","22","33","1111","334","33","22","111","33");
            function distinct(a)
            {
                return /(/x0f[^/x0f]+/x0f)[/s/S]*?/1/g.test(a)?distinct(a.replace(/(/x0f[^/x0f]+/x0f)([/s/S]*?)(/1)/g,"$1$2")):a;
            }
            function test()
            {    
                a=distinct("/x0f"+ary.join("/x0f/x0f") +"/x0f");
                var tt=document.getElementById('txt1');
                tt.value=a.substr(1,a.length-2).split("/x0f/x0f");
                //document.write(a.substr(1,a.length-2).split("/x0f/x0f"));
            }
            function display()
            {
                    
                    var t=document.getElementById('txt');
                    var val="";
                    for(var i=0;i<ary.length;i++)
                    {
                            val+=ary[i]+" ";
                    }
                    t.value=""+val;        
            }
        </script>
    </head>
    <body οnlοad="display()">
        <form>
            数组中的内容有: <input type="text" size="100" value="" id="txt"/><br/>
            消除重复项后有:<input type="text" size="100" value="" id="txt1"/><br/>
            <input type="button" οnclick="test()" value="测试消除数组中重复项"/>
        </form>

    </body>
</html>


 另外一种写法更简洁

<SCRIPT   LANGUAGE="JavaScript"> 
  <!-- 
  Array.prototype.unique   =   function() 
  { 
      var   a   =   {};  
      for(var   i=0;   i<this.length;   i++) 
      { 
          if(typeof   a[this[i]]   ==   "undefined") 
              a[this[i]]   =   1; 
      } 
      this.length   =   0; 
      for(var   i   in   a) 
          this[this.length]   =   i; 
      return   this; 
  } 
  var   a   =   [1,2,4,12,5,3,5,4,8,5,2,8,8,1,5]; 
  alert(a   +"/n"+   a.unique()); 
  //--> 
  </SCRIPT>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值