合并多个数组,可合并一维数组和二维数组,哈哈.比较简单,自己先存着,以免以后用来
如:
[b][color=darkred]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[/color][/b]
升级版-------------------------------------------不知还有没有更好的办法?
如:
[b][color=darkred]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[/color][/b]
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;
}
}
}
升级版-------------------------------------------不知还有没有更好的办法?
package {
/**
* ...合并多个数组,可合并一维数组和二维数组
* @author zkl
* 2010-8-30 14:27
*/
public class mergeArrayOk {
public function Merge(... args):Array {
return merge1(args);
}
private function merge1(arr:Array):Array {
var i:int, j:int;
var _tempArray:Array = new Array;
//为了不让每次循环都计算数组长度
var len:int = arr.length;
for (i = 0; i < len; i++){
if (arr[i] is Array){
var len2:int = arr[i].length;
for (j = 0; j < len2; j++){
if (arr[i][j] != null){
_tempArray.push(arr[i][j]);
}
}
} else if (arr[i] != null){
_tempArray.push(arr[i]);
}
}
//查询_tempArray是否还有数组,有则再次转换
var m:int;
var len3:int = _tempArray.length;
for (i = 0; i < len3; i++){
if (_tempArray[i] is Array){
return merge1(_tempArray);
break;
} else {
m++;
if (m == _tempArray.length){
return _tempArray;
}
}
}
}
}
}