查询数组

Array 和 Vector 类的四种方法 concat()join()slice()toString() 均可用于查询数组的信息,而不修改数组。concat()slice() 方法返回新数组;而 join()toString() 方法返回字符串。concat() 方法将新数组和元素列表作为参数,并将其与现有数组结合起来创建新数组。slice() 方法有两个名为 startIndexendIndex 的参数,并返回一个新数组,新数组中包含从现有数组“分离”的元素副本。分离从 startIndex 处的元素开始,到 endIndex 处的前一个元素结束。值得强调的是,endIndex 处的元素不包括在返回值中。

以下示例通过 concat()slice() 方法,使用其它数组的元素创建一个新数组:

var array1:Array = ["alpha", "beta"]; 
var array2:Array = array1.concat("gamma", "delta"); 
trace(array2); // output: alpha,beta,gamma,delta 
 
var array3:Array = array1.concat(array2); 
trace(array3); // output: alpha,beta,alpha,beta,gamma,delta 
 
var array4:Array = array3.slice(2,5); 
trace(array4); // output: alpha,beta,gamma

可以使用 join()toString() 方法查询数组,并将其内容作为字符串返回。如果 join() 方法没有使用参数,则这两个方法的行为相同,它们都返回一个字符串,其中包含数组中所有元素的逗号分隔列表。与 toString() 方法不同,join() 方法接受名为 delimiter 的参数;可以使用此参数,选择要用作返回字符串中各个元素之间分隔符的符号。

下面的示例创建名为 rivers 的 Array,并调用 join()toString() 以便采用字符串形式返回该 Array 中的值。toString() 方法用于返回以逗号分隔的值 (riverCSV);而 join() 方法用于返回以 + 字符分隔的值。

var rivers:Array = ["Nile", "Amazon", "Yangtze", "Mississippi"]; 
var riverCSV:String = rivers.toString(); 
trace(riverCSV); // output: Nile,Amazon,Yangtze,Mississippi 
var riverPSV:String = rivers.join("+"); 
trace(riverPSV); // output: Nile+Amazon+Yangtze+Mississippi

对于 join() 方法,应注意的一个问题是,无论为主数组元素指定的分隔符是什么,为嵌套 Array 或 Vector 实例返回的值始终以逗号作为分隔符,如下面的示例所示:

var nested:Array = ["b","c","d"]; 
var letters:Array = ["a",nested,"e"];  
var joined:String = letters.join("+"); 
trace(joined); // output: a+b,c,d+e