交换二维数组的行列(AS3)

最近用perl做了一个项目,将N个某个目录下的N 个CSV插入到Sybase数据库中,CSV是个交叉表,在处理时需要交换二维数组的行列。用perl来实现很简单,其实用ActionScript也不难。

代码如下:

package com.riafan.utils {
	/**
	 * Class that contains static utility methods for manipulating and working
	 * with Arrays
	 * @author Flying
	 * @version 1
	 * @tiptext
	 */
	public class ArrayUtil {
		/**
		 * Switch the rows and columns of a 2d array array
		 * @param arr The 2d array whose dimensions will be switched
		 * @return A new array which contains items after switch 
		 */
		public static function switchDimensions(arr : Array) : Array {
			var newArr : Array = new Array();
			var rowMax : uint = arr.length;
			var colMax : uint;
			try {
				if(arr[0] is Array) {
					colMax = arr[0].length;
				}else {
					throw new TypeError("muse be a 2d array");
				}
			}
			catch (error : TypeError) {
				trace(error.message);
			}
			for (var col : uint = 0; col < colMax; col++) {
				var tmpArr : Array = new Array();
				for (var row : uint = 0; row < rowMax; row++) {
					tmpArr[row] = (arr[row][col]);
				}
				newArr[col] = tmpArr;
			}
			return newArr;
		}
	}
}

说明:switchDimensions方法用来交换初始二维数组的行列,并返回新的二维数组。比如说[[1,2],[true,false],['A','B']]将返回[[1,true,'A'],[2,false,'B']]。

上一篇上一篇: ActionScript 3设计模式类图(二)
下一篇下一篇: Flex要出中文版
来自文章来自: 本站原创
引用引用通告: 查看所有引用 | 我要引用此文章
标签Tags: Actionscript3 Algorithm
相关相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭