当前位置:编程学习 > JS >>

javascript 去除数组的重复元素

网页特效 去除数组的重复元素
参数:arr--数组类型
返回值:无重复元素的数组

1.先以目标数组的值为key生成一个对象. 这一步是最核心的: 因为在一个对象中, key是无法重复的, 这样就很巧妙的排除了重复值;

2. 遍历生成的对象, 将这些key取出来放到一个数组中, ok, 到此就大功告成了

*/

function uniquearr(arr)
{
    arr = arr || [];
    var a = {};
    for (var i=0; i<arr.length; i++)
    {
        var v = arr[i];
        if (typeof(a[v]) == 'undefined')
    {
            a[v] = 1;
        }
    }
    arr.length = 0;
    for (var i in a )
    {
        arr[arr.length] = i;
    }
   
    return arr;
}

//
var arr=["a","b","c","a"];
alert(arr.reverse().join(",").match( /([^,]+)(?!.*1)/ig).reverse());

//

array.prototype.deleteele=function(){
        var newarr = this;
        for (var i=newarr.length-1; i>=0; i--)
        {
            var targetnode = newarr[i];
            for (var j=0; j<i; j++)
            {
                if(targetnode == newarr[j]){
                    newarr.splice(i,1);
                    //alert(arr);
                    break;
                }
            }
        }
        return newarr;
    }
    var arr = ["a","b","c","c","ab","d","ab","d","c"];
    alert(arr.deleteele());


//对于该方法, 不论数组有多少项, 都只会遍历两次, 在性能上的优势较明显,经过测试上面支除数组重复项函数都可用。

补充:网页制作,js教程 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,