利用hash原理实现数组去重。
大致思路是 循环判断预先声明的对象中是否包含元素的属性,如果包含则跳过;如果不包含就为对象增加属性并且赋值,然后将元素push到预先声明的数组中并返回。
说的可能有点啰嗦了,直接上代码
var arr = [2,3,3,3,3,4,4,4,5,5,2,2,2,4];
Array.prototype.unique = function(){
var temp = {},
arr = [],
len = this.length;
for (var i = 0; i < len; i++) {
if(!temp[this[i]]){
// 任意赋值
temp[this[i]] = 'ydj';
arr.push(this[i]);
}
}
return arr;
}
console.log(arr.unique());
打印结果
怎么样是不是很happy!