删除Array重复元素的方法

删除Array重复元素的方法:

像其它的语言一般都有标准方法,可Javascript天生就没有标准的方法,我们可以能过Prototype这个属性给Array添加一个我们自己的方法,使用的时候可以像使用toString()  valueOf()  ....等等一样,很实用,其实大家还可以添加其它的方法,比较Sting的去除首尾空格,去除HTML标签,我的Javascript库里有,喜欢的朋友可以去看一下。好了,言归正传:

<script type="text/javascript">  

Array.prototype.del=function(){

    var n=[];

    if(this.length<1){return this}
    for(var i=0; i<this.length; i++){
        var st=false
        for(var j=0; j<n.length; j++){

            if(this[i].toString() == n[j].toString()){
            st=true

            }
        }

        if(!st){
        n.push(this[i]);
        }

    }
        return n;
    }
    var m=[0,2,2,2,2,3,3,3,5,5,6,6,7,7,8]
    alert(m+"\n"+m.del())

 


</script>

 

试试吧,很简单的。

这里需要注意一个问题,大家看看下面的:

varm=[0,0,0,0,1,1,5,5,5,5,"0"]

alert(m.del)//output0,1,5

0跟“0”是不一样的,一个是Number,一个是String

如果想要输出//0,1,5,0

上面的就要必动一下:
<script type="text/javascript">  

Array.prototype.del=function(){

    var n=[];

    if(this.length<1){return this}
    for(var i=0; i<this.length; i++){
        var st=false
        for(var j=0; j<n.length; j++){

            if(this[i].toString() === n[j].toString()){
            st=true

            }
        }

        if(!st){
        n.push(this[i]);
        }

    }
        return n;
    }
   var m=[0,0,0,0,1,1,5,5,5,5,"0"]

   alert(m.del())  //  output    0,1,5,0

 


</script>
 

这样就是正确的。

相关推荐