1. 程式人生 > >Js中去除數組中重復元素的幾種方法

Js中去除數組中重復元素的幾種方法

method fun eth bsp class prot return index 方法

方法1:

1 Array.prototype.method1=function(){
2     var arr=[];
3     for(var i=0;i<this.length;i++){
4         if(arr.indexOf(this[i]) == -1){
5            arr.push(this[i]);
6         }
7     }
8     return arr;
9 }

方法2:

 1   Array.prototype.method2 = function(){  
 2             var h{};    //定義一個hash表  
3 var arr[]; //定義一個臨時數組 4 5 for(var i = 0; i < this.length; i++){ //循環遍歷當前數組 6 //對元素進行判斷,看是否已經存在表中,如果存在則跳過,否則存入臨時數組 7 if(!h[this[i]]){ 8 //存入hash表 9 h[this[i]] = true; 10 //
把當前數組元素存入到臨時數組中 11 arr.push(this[i]); 12 } 13 } 14 return arr; 15 }

方法3:

 1    Array.prototype.method3 = function(){  
 2             //直接定義結果數組  
 3             var arr[this[0]];  
 4             for(var i = 1; i < this
.length; i++){ //從數組第二項開始循環遍歷此數組 5 //對元素進行判斷: 6 //如果數組當前元素在此數組中第一次出現的位置不是i 7 //那麽我們可以判斷第i項元素是重復的,否則直接存入結果數組 8 if(this.indexOf(this[i]) == i){ 9 arr.push(this[i]); 10 } 11 } 12 return arr; 13 14 }

方法4:

 1 Array.prototype.method4 = function(){  
 2             //將數組進行排序  
 3             this.sort();  
 4             //定義結果數組  
 5             var arr[this[0]];  
 6             for(var i = 1; i < this.length; i++){    //從數組第二項開始循環遍歷數組  
 7                 //判斷相鄰兩個元素是否相等,如果相等說明數據重復,否則將元素寫入結果數組  
 8                 if(this[i] !== arr[arr.length - 1]){  
 9                     arr.push(this[i]);  
10                 }              
11             }  
12             return arr;  
13               
14         } 

Js中去除數組中重復元素的幾種方法