欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Js数组去重的5个方法

程序员文章站 2023-10-18 19:01:16
js数组去重的5个方法 1. array.prototype.unique1 = function(){ var n = []; //一个新的临时数组 for(var i =...

js数组去重的5个方法

1. array.prototype.unique1 = function(){

var n = []; //一个新的临时数组

for(var i = 0; i < this.length; i++) //遍历当前数组

{

//如果当前数组的第i已经保存进了临时数组,那么跳过,

//否则把当前项push到临时数组里面

if (n.indexof(this[i]) == -1) n.push(this[i]);

}

return n;

}

2. array.prototype.unique2 = function(){

var n = {},r=[]; //n为hash表,r为临时数组

for(var i = 0; i < this.length; i++) //遍历当前数组

{

if (!n[this[i]]) //如果hash表中没有当前项

{

n[this[i]] = true; //存入hash表

r.push(this[i]); //把当前数组的当前项push到临时数组里面

}

}

return r;

}

3. array.prototype.unique3 = function(){

var n = [this[0]]; //结果数组

for(var i = 1; i < this.length; i++) //从第二项开始遍历

{

//如果当前数组的第i项在当前数组中第一次出现的位置不是i,

//那么表示第i项是重复的,忽略掉。否则存入结果数组

if (this.indexof(this[i]) == i) n.push(this[i]);

}

return n;

}

4. array.prototype.unique4 = function(){

this.sort();

var re=[this[0]];

for(var i = 1; i < this.length; i++)

{

if( this[i] !== re[re.length-1])

{

re.push(this[i]);

}

}

return re;

}

5. array.prototype.unique5 = function(){

var r;

r = this.filter(function (element, index, self) {

return self.indexof(element) === index;

});

return r;

}