JS合併多個數組去重算法

 
  1. var arr1 = ['a','b'];  
  2. var arr2 = ['a','c','d'];  
  3. var arr3 = [1,'d',undefined,true,null];
  4. //合併兩個數組,去重  
  5. var concat_ = function(arr1,arr2){  
  6.     //不要直接使用var arr = arr1,這樣arr只是arr1的一個引用,二者的修改會互相影響  
  7.     var arr = arr1.concat();  
  8.     //或者使用slice()複製,var arr = arr1.slice(0)  
  9.     for(var i=0;i<arr2.length;i++){  
  10.         arr.indexOf(arr2[i]) === -1 ? arr.push(arr2[i]) : 0;  
  11.     }  
  12.     return arr;  
  13. }  

 

  1. //合併多個數組,去重  
  2. var concat = function(arr1,arr2,arr3){  
  3.     if(arguments.length <= 1){  
  4.         return false;  
  5.     }  
  6.     var concat_ = function(arr1,arr2){  
  7.         var arr = arr1.concat();  
  8.         for(var i=0;i<arr2.length;i++){  
  9.             arr.indexOf(arr2[i]) === -1 ? arr.push(arr2[i]) : 0;  
  10.         }  
  11.         return arr;  
  12.     }  
  13.     var result = concat_(arr1,arr2);  
  14.     for(var i=2;i<arguments.length;i++){  
  15.         result = concat_(result,arguments[i]);  
  16.     }  
  17.     return result;  
  18. }  

     

  19. //合併多個數組,去重,排序  
  20. var arr1 = [1,6,4,0];  
  21. var arr2 = [8,20,7,4.5];  
  22. var arr3 = [6,0,7,90,2];  
  23.   
  24. var concat = function(arr1,arr2,arr3){  
  25.     if(arguments.length <= 1){  
  26.         return false;  
  27.     }  
  28.     var concat_ = function(arr1,arr2){  
  29.         var arr = arr1.concat();  
  30.         for(var i=0;i<arr2.length;i++){  
  31.             arr.indexOf(arr2[i]) === -1 ? arr.push(arr2[i]) : 0;  
  32.         }  
  33.         return arr;  
  34.     }  
  35.     var result = concat_(arr1,arr2);  
  36.     for(var i=2;i<arguments.length;i++){  
  37.         result = concat_(result,arguments[i]);  
  38.     }  
  39.     //排序  
  40.     function sortNumber(a,b){  
  41.         return a - b;  
  42.     }  
  43.     return result.sort(sortNumber);  
  44. }  
 
 
//查找兩個數組的重複項
代碼以下:     var desk=function(arr1,arr2){         var arr=[];         for(var i=0;i<arr2.length;i++){             if(arr1.indexOf(arr2[i])!==-1){                 arr.push(arr2[i]);             }         }         return arr;     };     var a=desk([1,2,4,5,6,7,8],[2,3,4,5,7,8]);     console.log(a);  //[2,4,6,7,8]
相關文章
相關標籤/搜索