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:

 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         } 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM