去除数组中重复的元素

方法1:

var i = [1,2,4,1,2,3,4];
function unique(arr){
    // 遍历arr,把元素分别放入tmp数组(不存在才放)
    var tmp = [];
    for(var i in arr){
    //该元素在tmp内部不存在才允许追加
    if(tmp.indexOf(arr[i])==-1){
    tmp.push(arr[i]);
    }}
    return tmp;
}
unique(i);

 

方法2:自己写的一个方法,先给数组排序,然后前后比较,如果后一个与前一个相同,就删除前一个。因为splice方法会改变原数组,所以另取一个变量j,每删除一个元素,j++,数组长度减去j。

var i = [1,2,4,1,2,3,4];
Array.prototype.deleteaEle = function(){
    var sortA = this.sort();
    var l = sortA.length;
    for(var i=0,j=0;i<l;i++){
        if(sortA[i+1-j]==sortA[i-j]){
            sortA.splice(i-j,1);
            j++;
        }
    }    
    return sortA;
};
i.deleteaEle();

 

posted @ 2014-08-29 14:38  微笑forever  阅读(180)  评论(0)    收藏  举报