`

合并多个数组

 
阅读更多

合并多个数组,可合并一维数组和二维数组,哈哈.比较简单,自己先存着,以免以后用来
如:
var a1:Array=[1,2,3,4]
var a2:Array=[432,4,5,7]
var a3:Array=[36]
var aa:Array=[a1,a2,a3]


var m:mergeArray=new mergeArray;

//var a:Array=m.Merge(aa);//-----------1
var a:Array=m.Merge(a1,a2,a3)//--------2

trace(a + " = " + a.length);
//1,2都输入1,2,3,4,432,4,5,7,36 = 9

Java代码 复制代码 收藏代码
  1. package  
  2. {   
  3.        
  4.     /**  
  5.      * ...合并多个数组,可合并一维数组和二维数组  
  6.      * @author zkl  
  7.      */  
  8.     public class mergeArray   
  9.     {   
  10.         private var i:int;   
  11.            
  12.         private var j:int;   
  13.            
  14.         public function Merge(...args):Array   
  15.         {   
  16.             var _newArray:Array = new Array;   
  17.                
  18.             var len:int = args.length;   
  19.                
  20.             if (len == 1) {   
  21.                    
  22.                 //二维数组   
  23.                 if (args[0] is Array) {   
  24.                        
  25.                     for (i = 0; i < args[0].length; i++ ) {   
  26.                         //合并一维数组   
  27.                          _newArray = mergeing(args[0]);    
  28.                             
  29.                     }   
  30.                 }   
  31.                    
  32.             }else {   
  33.                    
  34.                 _newArray = mergeing(args);   
  35.                    
  36.             }   
  37.                    
  38.             return _newArray;   
  39.                
  40.         }   
  41.            
  42.         /**  
  43.          * 合并一维数组  
  44.          */  
  45.         private function mergeing(a1:Array):Array   
  46.         {   
  47.             var a:Array = new Array;   
  48.                
  49.             for (i = 0; i < a1.length; i++ ) {   
  50.                        
  51.                     if (a1[i] is Array) {   
  52.                            
  53.                         for (j = 0; j < a1[i].length; j++ ) {   
  54.                             
  55.                             a.push(a1[i][j]);   
  56.                             
  57.                         }   
  58.                            
  59.                     }   
  60.                 }   
  61.                
  62.             return a;   
  63.         }   
  64.            
  65.     }   
  66.        
  67. }  
package
{
	
	/**
	 * ...合并多个数组,可合并一维数组和二维数组
	 * @author zkl
	 */
	public class mergeArray
	{
		private var i:int;
		
		private var j:int;
		
		public function Merge(...args):Array
		{
			var _newArray:Array = new Array;
			
			var len:int = args.length;
			
			if (len == 1) {
				
				//二维数组
				if (args[0] is Array) {
					
					for (i = 0; i < args[0].length; i++ ) {
						//合并一维数组
						 _newArray = mergeing(args[0]); 
						 
					}
				}
				
			}else {
				
				_newArray = mergeing(args);
				
			}
				
			return _newArray;
			
		}
		
		/**
		 * 合并一维数组
		 */
		private function mergeing(a1:Array):Array
		{
			var a:Array = new Array;
			
			for (i = 0; i < a1.length; i++ ) {
					
					if (a1[i] is Array) {
						
					    for (j = 0; j < a1[i].length; j++ ) {
						 
					    	a.push(a1[i][j]);
						 
					    }
						
					}
				}
		    
			return a;
		}
		
	}
	
}



升级版-------------------------------------------不知还有没有更好的办法?

Java代码 复制代码 收藏代码
  1. package {   
  2.   
  3.     /**  
  4.      * ...合并多个数组,可合并一维数组和二维数组  
  5.      * @author zkl  
  6.      * 2010-8-30 14:27  
  7.      */  
  8.     public class mergeArrayOk {   
  9.         public function Merge(... args):Array {   
  10.             return merge1(args);   
  11.         }   
  12.   
  13.         private function merge1(arr:Array):Array {   
  14.             var i:int, j:int;   
  15.             var _tempArray:Array = new Array;   
  16.             //为了不让每次循环都计算数组长度   
  17.             var len:int = arr.length;   
  18.             for (i = 0; i < len; i++){   
  19.                 if (arr[i] is Array){   
  20.                     var len2:int = arr[i].length;   
  21.                     for (j = 0; j < len2; j++){   
  22.                         if (arr[i][j] != null){   
  23.                             _tempArray.push(arr[i][j]);   
  24.                         }   
  25.                     }   
  26.                 } else if (arr[i] != null){   
  27.                     _tempArray.push(arr[i]);   
  28.                 }   
  29.             }   
  30.             //查询_tempArray是否还有数组,有则再次转换   
  31.             var m:int;   
  32.             var len3:int = _tempArray.length;   
  33.             for (i = 0; i < len3; i++){   
  34.                 if (_tempArray[i] is Array){   
  35.                     return merge1(_tempArray);   
  36.                     break;   
  37.                 } else {   
  38.                     m++;   
  39.                     if (m == _tempArray.length){   
  40.                         return _tempArray;   
  41.                     }   
  42.                 }   
  43.             }   
  44.         }   
  45.     }   
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics