使用两个索引数组时,可以将结果呈现为表或电子表格。第一个数组的元素表示表的行,第二个数组的元素表示表的列。
例如,以下多维数组使用两个索引数组跟踪一周中每一天的任务列表。第一个数组masterTaskList 是使用 Array 类构造函数创建的。此数组中的各个元素分别表示一周中的
各天,其中索引 0 表示星期一,索引 6 表示星期日。可将这些元素当成是表的行。可通过为 masterTaskList 数组中创建的七个元素中的每个元素分配数组文本来创建每一天的任务列表。这些数组文本表示表的列。
- var masterTaskList:Array = new Array();
- masterTaskList[0] = ["wash dishes", "take out trash"];
- masterTaskList[1] = ["wash dishes", "pay bills"];
- masterTaskList[2] = ["wash dishes", "dentist", "wash dog"];
- masterTaskList[3] = ["wash dishes"];
- masterTaskList[4] = ["wash dishes", "clean house"];
- masterTaskList[5] = ["wash dishes", "wash car", "pay rent"];
- masterTaskList[6] = ["mow lawn", "fix chair"];
可以使用括号记号访问任意任务列表中的单个项。第一组括号表示一周的某一天,第二组括号表示这一天的任务列表。例如,要检索星期三的列表中的第二项任务,请首先使用表示星期三的索引 2,然后使用表示列表中的第二项任务的索引 1。
trace(masterTaskList[2][1]); // 输出:dentist
要检索星期日的任务列表中的第一项,请使用表示星期日的索引 6 和表示列表中的第一项任务的索引 0。
trace(masterTaskList[6][0]); // 输出:mow lawn
具有索引数组的关联数组要使单个数组的访问更加方便,可以使用关联数组表示一周的各天并使用索引数组表示任务列表。通过使用关联数组可以在引用一周中特定的一天时使用点语法,但要访问关联数组的每个元素还需额外进行运行时处理。以下示例使用关联数组作为任务列表的基础,并使用键和值对来表示一周中的每一天:
- var masterTaskList:Object = new Object();
- masterTaskList["Monday"] = ["wash dishes", "take out trash"];
- masterTaskList["Tuesday"] = ["wash dishes", "pay bills"];
- masterTaskList["Wednesday"] = ["wash dishes", "dentist", "wash dog"];
- masterTaskList["Thursday"] = ["wash dishes"];
- masterTaskList["Friday"] = ["wash dishes", "clean house"];
- masterTaskList["Saturday"] = ["wash dishes", "wash car", "pay rent"];
- masterTaskList["Sunday"] = ["mow lawn", "fix chair"];
204 处理数组
点语法通过避免使用多组括号改善了代码的可读性。trace(masterTaskList.Wednesday[1]); // 输出:dentist
trace(masterTaskList.Sunday[0]); // 输出:mow lawn
可以使用 for..in 循环来循环访问任务列表,但必须使用括号记号来访问与每个键关联的值,而不是使用点语法。由于 masterTaskList 为关联数组,因而不一定会按照您所期望的顺序检索元素,如以下示例所示:
- for (var day:String in masterTaskList)
- {
- trace(day + ": " + masterTaskList[day])
- }
- /* output:
- Sunday: mow lawn,fix chair
- Wednesday: wash dishes,dentist,wash dog
- Friday: wash dishes,clean house
- Thursday: wash dishes
- Monday: wash dishes,take out trash
- Saturday: wash dishes,wash car,pay rent
- Tuesday: wash dishes,pay bills
- */