实现数组去重(hash方法)

366 阅读1分钟
Array.prototype.unique = function(){
        var obj = {},
            arr = [],
            len = this.length;
        for(var i = 0; i < len; i++){
            if(!obj[this[i]]){
                obj[this[i]] = '1';
                arr.push(this[i]);
            }
        }
        return arr;
}

实现过程

在原型链上编程

定义一个obj空对象,将要去重的数组中的值作为对象的属性名,并给此属性赋值。

循环取出数组中的每个值,判断在对象中有无此属性,没有则增加属性。

将对象的属性名放到一个空数组中,此数组为去重后数组。