给Array添加去重原型方法

Array.prototype.unique = function(){
    var newArray = [];
    var oldArray = this;
    if(oldArray.length<=1){
        return oldArray;
    }
    for(var i=0; oldArray.length>0; i++){
        //要一直把oldArray pop完为止.所以长度会一直变短。所以不能用i < oldArray.length的形式来判断是否完成.
        newArray.push(oldArray.shift()); //oldArray从最前面开始移出数组元素,这样新数组的顺序不会变。
        for(var j=0; j<oldArray.length; j++){
            if(newArray[i]==oldArray[j]){
                oldArray.splice(j,1);//删除重复的元素
                j--;
            }
        }
    }
    return newArray;
}




var a = [2,4,1,2,3,5,5,5,6,8,7,8,9];
var b=a.unique();
alert(b);//输出2,4,1,3,5,6,8,7,9;

 

posted on 2019-01-20 20:55  一只傻阿贝哟  阅读(140)  评论(0编辑  收藏  举报

导航