js实现数组去重
在js实际应用中会用到数组去重,那么应该怎样实现去重呢?
方法1:
var arr = [1,1,1,2,3,3,2,1,1,1]
// var obj = {
// "1":"avb"
// }
Array.prototype.unique = function(){
var temp ={};
var arr = [];
for(var i = 0;i < this.length ; i++){
if(!temp[this[i]]){
temp[this[i]] = 'abc';
arr.push(this[i])
}
}
return arr
}
console.log(arr.unique());//结果为 [1,2,3]
方法2: 利用hash哈希表(推荐)
var arr = [1,1,1,2,3,3,2,1,1,1]
Array.prototype.unique2 = function () {
var hash = [],
n = [];//hash 哈希表,n 为临时数组
for(var i = 0; i < this.length; i ++){
if(!hash[this[i]]){
hash[this[i]] = true;//存入哈希表
n.push(this[i]);//当前元素push到数组中
}
}
return n
}
console.log(arr.unique2())
方法3
var arr = [1,1,1,2,3,3,2,1,1,1]
Array.prototype.unique = function () {
var arr = [];
for(var i = 0; i < this.length;i++){
if(arr.indexOf(this[i]) == -1){
arr.push(this[i])
}
}
return arr
}
console.log(arr.unique())
浙公网安备 33010602011771号