首先定义一个数组,下面的三种方法将都是用该数组操作
// 定义一个数组 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());