第一种:把去重的函数写到内置类原型上。
Array.prototype.myUnique = function myUnique(){
var obj = {};
for (var i=0;i<this.length;i++){
var item = this[i];
if(typeof obj[item] !== "undefined" ){
this[i]=this[this.length-1];
this.length--;
i--;
continue;
}
obj[item] =item;
}
obj=null;
return this;
}
// 使用时直接调用 arr.myUnique();
第二种方法:使用数组自带的filter()
;
arr.filter(function (element, index, self) {
return self.indexOf(element) === index;
});
第三种方法:使用ES6的Set高阶函数
function dedupe(array){
return Array.from(new Set(array));
}
console.log(dedupe(arr));