使用js给数组去重的3种常用方法

首先定义一个数组,下面的三种方法将都是用该数组操作

// 定义一个数组
  var arr=['js','js','js','html','js','java','c++','css','html5','c#','c#','css','html','js'];

1.第一种方法

 1 Array.prototype.unique1=function(){
 2       for(var i=0;i<this.length-1;i++){
 3         for(var j=1;j<this.length;j++){
 4           if(this[i]==this[i+j]){
 5             this.splice(i+j,1);
 6             j--;
 7           }
 8         }
 9       }
10       return arr;
11     }
12     console.log(arr.unique1());

2.第二种方法

 1 Array.prototype.unique2=function(){
 2       var n = []; //一个新的临时数组
 3       for (var i= 0;i<this.length;i++){
 4         //如果当前数组的第i已经保存进了临时数组,那么跳过,
 5         //否则把当前项push到临时数组里面
 6         if (n.indexOf(this[i]) == -1) n.push(this[i]);
 7       }
 8       return n;
 9     }
10     console.log(arr.unique2());

3.第三种方法:此方法改变了数组的顺序

 1 Array.prototype.unique3 = function(){
 2       this.sort();
 3       var re=[this[0]];
 4       for(var i=1;i<this.length;i++){
 5         if(this[i]!==re[re.length-1]){
 6           re.push(this[i]);
 7         }
 8       }
 9       return re;
10     }
11     console.log(arr.unique3());
posted @ 2015-05-13 17:32  一诺code  阅读(402)  评论(0编辑  收藏  举报