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

方法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:this

 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:spa

 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:prototype

 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         } 
相關文章
相關標籤/搜索