js刪除數組中重復的元素


 1、方法一

將數組逐個搬到另一個數組中,當遇到重復元素時,不移動,若元素不重復則移動到新數組中

 1 function unique(arr){
 2         var len = arr.length;
 3         var result = []
 4         for(var i=0;i<len;i++){
 5             var flag = true;
 6             for(var j = i;j<arr.length-1;j++){
 7                 if(arr[i]==arr[j+1]){
 8                     flag = false;
 9                     break;
10                 }
11             }
12             if(flag){
13                 result.push(arr[i])
14             }
15         }
16         return result;
17     }

 

2、方法二

遍歷數組arr,把元素分別放入另一個數組result中,判斷arr中的元素在result中是否存在,不存在即加入temp中

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

 

3、方法三

 

將數組的值作為對象的屬性,通過對象的屬性值來判斷數組是否重復,若該項不重復則給對象對應屬性值賦為true,便於之后的判斷,並將數據項加入結果集中

 1 function unique(arr) {
 2         var result = [];
 3         var obj = {};
 4         for(var i=0;i<arr.length;i++){
 5             if(!obj[arr[i]]){
 6                 result.push(arr[i]);
 7                 obj[arr[i]] = true;
 8             }
 9         }
10         return result
11     }

也可以通過判斷對象中是否包含該屬性來去重,此時對象屬性的值可以任意但必須有值,否則會認為該屬性不存在

 1 function unique(arr) {
 2         var result = [];
 3         var obj = {};
 4         for(var i=0;i<arr.length;i++){
 5             if(!obj.hasOwnProperty(arr[i])){// if(!(arr[i] in obj))
 6                 result.push(arr[i]);
 7                 obj[arr[i]] = 0;
 8             }
 9         }
10         return result
11     }

  

4、方法四

將數組的值賦給另一個數組的鍵,此時重復的元素都被刪除,然后取新數組的鍵作為去重后的結果

 1 function unique(arr){
 2         var result = []
 3         var temp = []
 4         for(var i in arr){
 5             temp[arr[i]] = 1;
 6         }
 7         for(var i in temp){
 8             result.push(i)
 9         }
10         return result
11     }

 


免責聲明!

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



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