套件 | 最上層 |
類別 | public dynamic class Array |
繼承 | Array Object |
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
[0]
,而第二個元素是 [1]
,其他依此類推。若要建立 Array 物件,請使用 new Array()
建構函式。 Array()
也可以當做函數叫用。 此外,您可以使用陣列存取 ([]
) 運算子以初始化陣列,或存取陣列的元素。
您可以在陣列元素中儲存各種不同的資料類型,包括數字、字串、物件,甚至是其他陣列。您可以建立「多維度」陣列,方法是建立索引陣列並為其個別元素指定不同的索引陣列。 這樣的陣列我們稱為多維度陣列,因為它可以用來在表格中顯示資料。
所謂「稀疏陣列」,表示在索引 0 可能有一個元素,在索引 5 則有另一個元素,不過這兩個元素之間的索引位置卻沒有任何元素。 在此情況下,從位置 1 到位置 4 的元素都是未定義的,也就表示不存在任何元素,而不一定有存在值為 undefined
的元素。
陣列是依據參照來指派,而非依據值來指派。 當您將一個陣列變數指派給另一個陣列變數時,兩者都會參照相同的陣列:
var oneArray:Array = new Array("a", "b", "c"); var twoArray:Array = oneArray; // Both array variables refer to the same array. twoArray[0] = "z"; trace(oneArray); // Output: z,b,c.
請勿使用 Array 類別建立「關聯陣列」 (又稱為「雜湊」),也就是包含已命名元素 (而非已編號元素) 的資料結構。 若要建立關聯陣列,請使用 Object 類別。 雖然 ActionScript 允許您使用 Array 類別建立關聯陣列,您卻無法將關聯陣列與 Array 類別的所有方法或屬性搭配使用。
您可以擴充 Array 類別並覆寫或新增方法。 不過,您必須將子類別指定為 dynamic
,否則便會喪失將資料儲存在陣列中的能力。
相關 API 元素
屬性 | 定義自 | ||
---|---|---|---|
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
length : uint
一個非負的整數,用來指定陣列中的元素數目。 | Array |
方法 | 定義自 | ||
---|---|---|---|
可讓您建立包含指定之元素的陣列。 | Array | ||
可讓您建立具有指定之元素數目的陣列。 | Array | ||
將參數中指定的元素和陣列中的元素連接,並建立新的陣列。 | Array | ||
對陣列中的每個項目執行測試函數,直到抵達針對指定之函數傳回 false 的項目為止。 | Array | ||
針對陣列中的每個項目執行測試函數,並為針對指定之函數傳回 true 的所有項目建構新的陣列。 | Array | ||
會針對陣列中的每個項目執行函數。 | Array | ||
指出物件是否有已定義的指定屬性。 | Object | ||
使用嚴謹相等 (===) 在陣列中搜尋某個項目,並傳回該項目的索引位置。 | Array | ||
將單一元素插入陣列。 | Array | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
會將陣列中的元素轉換成字串、在元素之間插入指定的分隔符號、連接元素,然後傳回最後產生的字串。 | Array | ||
在陣列中搜尋某個項目 (會從最後一個項目回移),並使用嚴謹相等 (===) 傳回符合之項目的索引位置。 | Array | ||
會針對陣列中的每個項目執行函數,並建構新的項目陣列,其中的項目會對應於原始陣列中每個項目的函數執行結果。 | Array | ||
會移除陣列中的最後一個元素,並傳回該元素的值。 | Array | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
在陣列結尾加入一個或多個元素,並傳回新的陣列長度。 | Array | ||
從陣列中移除單一元素。 | Array | ||
在原地將陣列反轉。 | Array | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
移除陣列中的第一個元素,並傳回該元素。 | Array | ||
傳回新的陣列 (此新陣列是由原始陣列的元素範圍所組成),但是不會修改原始陣列。 | Array | ||
對陣列中的每個項目執行測試函數,直到抵達傳回 true 的項目為止。 | Array | ||
對陣列中的元素進行排序。 | Array | ||
根據陣列中的一個或多個欄位,對陣列中的元素進行排序。 | Array | ||
在陣列中增加和移除元素。 | Array | ||
會傳回字串,此字串代表指定之陣列中的元素。 | Array | ||
會傳回字串,此字串代表指定之陣列中的元素。 | Array | ||
在陣列開頭加入一個或多個元素,並傳回新的陣列長度。 | Array | ||
會傳回指定之物件的基本值。 | Object |
常數 | 定義自 | ||
---|---|---|---|
CASEINSENSITIVE : uint = 1 [靜態]
會針對 Array 類別排序方法指定不區分大小寫的排序方式。 | Array | ||
DESCENDING : uint = 2 [靜態]
會針對 Array 類別排序方法指定遞減排序方式。 | Array | ||
NUMERIC : uint = 16 [靜態]
會針對 Array 類別排序方法指定數字 (而非字元字串) 排序方式。 | Array | ||
RETURNINDEXEDARRAY : uint = 8 [靜態]
會指定排序傳回由陣列索引所組成的陣列。 | Array | ||
UNIQUESORT : uint = 4 [靜態]
會針對 Array 類別排序方法指定唯一的排序需求。 | Array |
length | 屬性 |
length:uint
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
一個非負的整數,用來指定陣列中的元素數目。 如果在陣列中增加新的元素,會自動更新這個屬性。 當您指定值給陣列元素 (例如,my_array[index] = value
) 時,如果 index
是數字,而且 index+1
大於 length
屬性,則會將 length
屬性更新為 index+1
。
注意:如果您將某個值指定給比現有長度還要短的 length
屬性,此陣列便會遭到截斷。
實作
public function get length():uint
public function set length(value:uint):void
範例 ( 如何使用本範例 )
Bill
的 Array 物件 names
。 然後該物件會使用 push()
方法加入另一個字串元素 Kyle
。 在使用 push()
之前,此陣列的長度 (由 length
屬性所決定) 為一個元素,而在呼叫 push()
之後則變成兩個元素。 另一個字串 Jeff
加入之後,names
的長度變成三個元素。 然後會呼叫 shift()
方法兩次來移除 Bill
和 Kyle
,讓最後的 length
陣列變成一個元素。
var names:Array = new Array("Bill"); names.push("Kyle"); trace(names.length); // 2 names.push("Jeff"); trace(names.length); // 3 names.shift(); names.shift(); trace(names.length); // 1
Array | () | 建構函式 |
public function Array(... values)
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
可讓您建立包含指定之元素的陣列。 您可以指定任何類型的值。 陣列中的第一個元素永遠都有 0 的索引 (或位置)。
注意:此類別會顯示兩個建構函式項目,因為該建構函式能接受變數類型的引數。 如每個項目中所詳述,此建構函式會根據傳遞之引數的類型與數目而有不同的行為。 ActionScript 3.0 並不支援方法或建構函式多載。
參數... values — 一個或多個任意值的逗號分隔清單。
注意:如果只將單一數值參數傳遞給 Array 建構函式,就會假定它要指定陣列的 |
擲回值
RangeError — 此引數是大於或等於 0 的非整數數字。
|
相關 API 元素
範例 ( 如何使用本範例 )
one
、two
和 three
填入此陣列中,然後將這些元素轉換為字串。
package { import flash.display.Sprite; public class Array_Array_3 extends Sprite { public function Array_Array_3() { var myArr:Array = new Array("one", "two", "three"); trace(myArr.length); // 3 trace(myArr); // one,two,three } } }
Array | () | 建構函式 |
public function Array(numElements:int = 0)
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
可讓您建立具有指定之元素數目的陣列。 如果不指定任何參數,則會建立含有 0 個元素的陣列。 如果您指定元素的數目,便會建立具有 numElements
個元素的陣列。
注意:此類別會顯示兩個建構函式方法項目,因為該建構函式能接受變數類型的引數。 如每個項目中所詳述,此建構函式會根據傳遞之引數的類型與數目而有不同的行為。 ActionScript 3.0 並不支援方法或建構函式多載。
參數numElements:int (default = 0 ) — 用來指定陣列中元素數目的整數。
|
擲回值
RangeError — 此引數是大於或等於 0 的非整數數字。
|
相關 API 元素
範例 ( 如何使用本範例 )
myArr
,不含任何引數且初始長度為 0:
package { import flash.display.Sprite; public class Array_Array extends Sprite { public function Array_Array() { var myArr:Array = new Array(); trace(myArr.length); // 0 } } }
"one"
填入第一個元素中,然後使用 push()
方法將字串元素 "six"
加入到陣列的結尾:
package { import flash.display.Sprite; public class Array_Array_2 extends Sprite { public function Array_Array_2() { var myArr:Array = new Array(5); trace(myArr.length); // 5 myArr[0] = "one"; myArr.push("six"); trace(myArr); // one,,,,,six trace(myArr.length); // 6 } } }
concat | () | 方法 |
AS3 function concat(... args):Array
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
將參數中指定的元素和陣列中的元素連接,並建立新的陣列。 如果參數指定陣列,便會連接該陣列的元素。如果您沒有傳遞任何參數,新的陣列便會是原始陣列的重製副本 (陰影副本)。
參數
... args — 要在新陣列中連接之任何資料類型 (如數字、元素或字串) 的值。
|
Array — 陣列,包含此陣列的元素,並後接參數中的元素。
|
範例 ( 如何使用本範例 )
numbers
陣列,其中包含數字1
、2
和3
。letters
陣列,其中包含字母a
、b
和c
。numbersAndLetters
陣列,它會呼叫concat()
方法以產生陣列[1,2,3,a,b,c]
。lettersAndNumbers
陣列,它會呼叫concat()
方法以產生陣列[a,b,c,1,2,3]
。
var numbers:Array = new Array(1, 2, 3); var letters:Array = new Array("a", "b", "c"); var numbersAndLetters:Array = numbers.concat(letters); var lettersAndNumbers:Array = letters.concat(numbers); trace(numbers); // 1,2,3 trace(letters); // a,b,c trace(numbersAndLetters); // 1,2,3,a,b,c trace(lettersAndNumbers); // a,b,c,1,2,3
every | () | 方法 |
AS3 function every(callback:Function, thisObject:* = null):Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會對陣列中的每一個項目執行測試函數,直到抵達針對指定之函數傳回 false
的項目為止。 您可以使用此方法,判斷陣列中的所有項目是否都符合準則,例如具有小於特定數字的值。
對於此方法而言,如果第一個參數 callback
是方法結束項,第二個參數 thisObject
就必須是 null
。假設您在影片片段中建立名為 me
的函數:
function myFunction(obj:Object):void { //your code here }
假設您接著對名稱為 myArray
的陣列使用 every()
方法:
myArray.every(myFunction, me);
由於 myFunction
是 Timeline 類別的成員,不能由 me
覆寫,Flash 執行階段便會擲出例外。您可以將此函數指定給變數,以避免這項執行階段錯誤,如下所示:
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.every(myFunction, me);
參數
callback:Function — 要針對陣列中每一個項目執行的函數。 此函數可以包含簡單的比較 (例如,item < 20 ) 或是較複雜的操作,而且必須搭配三個引數 (項目的值、項目的索引和 Array 物件) 加以叫用:
function callback(item:*, index:int, array:Array):Boolean; | |
thisObject:* (default = null ) — 要用來當做函數之 this 使用的物件。
|
Boolean — 如果陣列中的所有項目都針對指定的函數傳回 true ,則 Boolean 值為 true ,否則為 false 。
|
相關 API 元素
範例 ( 如何使用本範例 )
isNumeric
對第一個陣列的測試結果為 true
,而對第二個陣列的測試結果則為 false
:
package { import flash.display.Sprite; public class Array_every extends Sprite { public function Array_every() { var arr1:Array = new Array(1, 2, 4); var res1:Boolean = arr1.every(isNumeric); trace("isNumeric:", res1); // true var arr2:Array = new Array(1, 2, "ham"); var res2:Boolean = arr2.every(isNumeric); trace("isNumeric:", res2); // false } private function isNumeric(element:*, index:int, arr:Array):Boolean { return (element is Number); } } }
filter | () | 方法 |
AS3 function filter(callback:Function, thisObject:* = null):Array
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
針對陣列中的每個項目執行測試函數,並為針對指定之函數傳回 true
的所有項目建構新的陣列。 如果某個項目傳回 false
,則新的陣列中不會包括該項目。
對於此方法而言,如果第一個參數 callback
是方法結束項,第二個參數 thisObject
就必須是 null
。假設您在影片片段中建立名為 me
的函數:
function myFunction(obj:Object):void { //your code here }
然後假設您針對名為 myArray
的陣列使用 filter()
方法:
myArray.filter(myFunction, me);
由於 myFunction
是 Timeline 類別的成員,不能由 me
覆寫,Flash 執行階段便會擲出例外。您可以將此函數指定給變數,以避免這項執行階段錯誤,如下所示:
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.filter(myFunction, me);
參數
callback:Function — 要針對陣列中每一個項目執行的函數。 此函數可以包含簡單的比較 (例如,item < 20 ) 或是較複雜的操作,而且必須搭配三個引數 (項目的值、項目的索引和 Array 物件) 加以叫用:
function callback(item:*, index:int, array:Array):Boolean; | |
thisObject:* (default = null ) — 要用來當做函數之 this 使用的物件。
|
Array — 新的陣列,其中包含了原始陣列中傳回 true 的所有項目。
|
相關 API 元素
範例 ( 如何使用本範例 )
package { import flash.display.Sprite; public class Array_filter extends Sprite { public function Array_filter() { var employees:Array = new Array(); employees.push({name:"Employee 1", manager:false}); employees.push({name:"Employee 2", manager:true}); employees.push({name:"Employee 3", manager:false}); trace("Employees:"); employees.forEach(traceEmployee); var managers:Array = employees.filter(isManager); trace("Managers:"); managers.forEach(traceEmployee); } private function isManager(element:*, index:int, arr:Array):Boolean { return (element.manager == true); } private function traceEmployee(element:*, index:int, arr:Array):void { trace("\t" + element.name + ((element.manager) ? " (manager)" : "")); } } }
forEach | () | 方法 |
AS3 function forEach(callback:Function, thisObject:* = null):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會針對陣列中的每個項目執行函數。
對於此方法而言,如果第一個參數 callback
是方法結束項,第二個參數 thisObject
就必須是 null
。假設您在影片片段中建立名為 me
的函數:
function myFunction(obj:Object):void { //your code here }
假設您接著對名稱為 myArray
的陣列使用 forEach()
方法:
myArray.forEach(myFunction, me);
由於 myFunction
是 Timeline 類別的成員,不能由 me
覆寫,Flash 執行階段便會擲出例外。您可以將此函數指定給變數,以避免這項執行階段錯誤,如下所示:
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.forEach(myFunction, me);
參數
callback:Function — 要針對陣列中每一個項目執行的函數。 此函數可以包含簡單的命令 (例如,trace() 陳述式) 或是較複雜的作業,而且會以三個引數 (項目的值、項目的索引及 Array 物件) 加以叫用:
function callback(item:*, index:int, array:Array):void; | |
thisObject:* (default = null ) — 要用來當做函數之 this 使用的物件。
|
範例 ( 如何使用本範例 )
traceEmployee()
函數中的 trace()
陳述式:
package { import flash.display.Sprite; public class Array_forEach extends Sprite { public function Array_forEach() { var employees:Array = new Array(); employees.push({name:"Employee 1", manager:false}); employees.push({name:"Employee 2", manager:true}); employees.push({name:"Employee 3", manager:false}); trace(employees); employees.forEach(traceEmployee); } private function traceEmployee(element:*, index:int, arr:Array):void { trace(element.name + " (" + element.manager + ")"); } } }
traceEmployee()
函數中的 trace()
陳述式:
package { import flash.display.Sprite; public class Array_forEach_2 extends Sprite { public function Array_forEach_2() { var employeeXML:XML = <employees> <employee name="Steven" manager="false" /> <employee name="Bruce" manager="true" /> <employee name="Rob" manager="false" /> </employees>; var employeesList:XMLList = employeeXML.employee; var employeesArray:Array = new Array(); for each (var tempXML:XML in employeesList) { employeesArray.push(tempXML); } employeesArray.sortOn("@name"); employeesArray.forEach(traceEmployee); } private function traceEmployee(element:*, index:Number, arr:Array):void { trace(element.@name + ((element.@manager == "true") ? " (manager)" : "")); } } }
indexOf | () | 方法 |
AS3 function indexOf(searchElement:*, fromIndex:int = 0):int
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會使用嚴謹相等 (===
) 在陣列中搜尋某個項目,並傳回該項目的索引位置。
參數
searchElement:* — 要在陣列中尋找的項目。
| |
fromIndex:int (default = 0 ) — 要在陣列中開始搜尋項目的位置。
|
int — 此項目在陣列中的索引位置 (從零開始)。 如果找不到 searchElement 引數,傳回值會是 -1。
|
相關 API 元素
範例 ( 如何使用本範例 )
package { import flash.display.Sprite; public class Array_indexOf extends Sprite { public function Array_indexOf() { var arr:Array = new Array(123,45,6789); arr.push("123-45-6789"); arr.push("987-65-4321"); var index:int = arr.indexOf("123"); trace(index); // -1 var index2:int = arr.indexOf(123); trace(index2); // 0 } } }
insertAt | () | 方法 |
join | () | 方法 |
AS3 function join(sep:*):String
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會將陣列中的元素轉換成字串、在元素之間插入指定的分隔符號、連接元素,然後傳回最後產生的字串。 巢狀的陣列永遠是用逗號 (,) 來分隔,而不是用傳遞給 join()
方法的分隔符號來分隔。
參數
sep:* (default = NaN ) — 在傳回的字串中分隔陣列元素的字元或字串。 如果省略這個參數,便會使用逗號做為預設分隔符號。
|
String — 字串,由轉換成字串的陣列元素組成,並以指定的參數分隔。
|
相關 API 元素
範例 ( 如何使用本範例 )
join()
方法來建立包含元素 one
、two
和 three
的 Array 物件 myArr
以及包含 one and two and three
的字串。
var myArr:Array = new Array("one", "two", "three"); var myStr:String = myArr.join(" and "); trace(myArr); // one,two,three trace(myStr); // one and two and three
(
、)
、-
和空格的 Array 物件 specialChars
,然後建立包含 (888) 867-5309
的字串。 然後藉由使用 for
迴圈,它會移除 specialChars
中所列的每一個特殊字元類型,以產生只包含其餘電話號碼數字的字串 (myStr
):888675309
。請注意其他字元 (如 +
) 原本可能已經加入到 specialChars
,然後這個常式會處理國際電話號碼格式。
var phoneString:String = "(888) 867-5309"; var specialChars:Array = new Array("(", ")", "-", " "); var myStr:String = phoneString; var ln:uint = specialChars.length; for(var i:uint; i < ln; i++) { myStr = myStr.split(specialChars[i]).join(""); } var phoneNumber:Number = new Number(myStr); trace(phoneString); // (888) 867-5309 trace(phoneNumber); // 8888675309
lastIndexOf | () | 方法 |
AS3 function lastIndexOf(searchElement:*, fromIndex:int = 0x7fffffff):int
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會在陣列中搜尋某個項目 (從最後一個項目往回移),並使用嚴謹相等 (===
) 傳回符合之項目的索引位置。
參數
searchElement:* — 要在陣列中尋找的項目。
| |
fromIndex:int (default = 0x7fffffff ) — 要在陣列中開始搜尋項目的位置。 預設值是索引可允許的最大值。 如果沒有指定 fromIndex ,搜尋便會從陣列中的最後一個項目開始。
|
int — 此項目在陣列中的索引位置 (從零開始)。 如果找不到 searchElement 引數,傳回值會是 -1。
|
相關 API 元素
範例 ( 如何使用本範例 )
package { import flash.display.Sprite; public class Array_lastIndexOf extends Sprite { public function Array_lastIndexOf() { var arr:Array = new Array(123,45,6789,123,984,323,123,32); var index:int = arr.indexOf(123); trace(index); // 0 var index2:int = arr.lastIndexOf(123); trace(index2); // 6 } } }
map | () | 方法 |
AS3 function map(callback:Function, thisObject:* = null):Array
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會針對陣列中的每個項目執行函數,並建構新的項目陣列,其中的項目會對應於原始陣列中每個項目的函數執行結果。
對於此方法而言,如果第一個參數 callback
是方法結束項,第二個參數 thisObject
就必須是 null
。假設您在影片片段中建立名為 me
的函數:
function myFunction(obj:Object):void { //your code here }
假設您接著對名稱為 myArray
的陣列使用 map()
方法:
myArray.map(myFunction, me);
由於 myFunction
是 Timeline 類別的成員,不能由 me
覆寫,Flash 執行階段便會擲出例外。您可以將此函數指定給變數,以避免這項執行階段錯誤,如下所示:
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.map(myFunction, me);
參數
callback:Function — 要針對陣列中每一個項目執行的函數。 此函數可以包含簡單的命令 (例如,變更字串陣列的大小寫) 或更複雜的作業,而且會搭配三個引數 (項目的值、項目的索引,以及 Array 物件) 加以叫用:
function callback(item:*, index:int, array:Array):String; | |
thisObject:* (default = null ) — 要用來當做函數之 this 使用的物件。
|
Array — 新的陣列,其中包含原始陣列中每個項目的函數執行結果。
|
相關 API 元素
範例 ( 如何使用本範例 )
package { import flash.display.Sprite; public class Array_map extends Sprite { public function Array_map() { var arr:Array = new Array("one", "two", "Three"); trace(arr); // one,two,Three var upperArr:Array = arr.map(toUpper); trace(upperArr); // ONE,TWO,THREE } private function toUpper(element:*, index:int, arr:Array):String { return String(element).toUpperCase(); } } }
pop | () | 方法 |
AS3 function pop():*
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會移除陣列中的最後一個元素,並傳回該元素的值。
傳回值* — 指定之陣列中最後一個元素 (可以是任何資料類型) 的值。
|
相關 API 元素
範例 ( 如何使用本範例 )
a
、b
和 c
的 Array 物件 letters
。 然後會使用 pop()
方法,從此陣列中移除最後一個元素 (c
),然後將它指定給 String 物件 letter
。
var letters:Array = new Array("a", "b", "c"); trace(letters); // a,b,c var letter:String = letters.pop(); trace(letters); // a,b trace(letter); // c
push | () | 方法 |
AS3 function push(... args):uint
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
在陣列結尾加入一個或多個元素,並傳回新的陣列長度。
參數
... args — 要附加至陣列的一個或多個值。
|
uint — 整數,代表新陣列的長度。
|
相關 API 元素
範例 ( 如何使用本範例 )
letters
,然後使用 push()
方法將元素 a
、b
和 c
填入此陣列中。
var letters:Array = new Array(); letters.push("a"); letters.push("b"); letters.push("c"); trace(letters.toString()); // a,b,c
letters
,此物件一開始會填入元素 a
。 然後會使用 push()
方法一次,將元素 b
和 c
加入到此陣列的結尾,也就是推入之後有三個元素。
var letters:Array = new Array("a"); var count:uint = letters.push("b", "c"); trace(letters); // a,b,c trace(count); // 3
removeAt | () | 方法 |
reverse | () | 方法 |
AS3 function reverse():Array
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
在原地將陣列反轉。
傳回值Array — 新的陣列。
|
範例 ( 如何使用本範例 )
a
、b
和 c
的 Array 物件 letters
。 然後會使用 reverse()
方法反轉陣列元素的順序,以產生陣列 [c,b,a]
。
var letters:Array = new Array("a", "b", "c"); trace(letters); // a,b,c letters.reverse(); trace(letters); // c,b,a
shift | () | 方法 |
AS3 function shift():*
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
移除陣列中的第一個元素,並傳回該元素。 剩餘的陣列元素會從其原始位置 i 移到 i-1。
傳回值* — 陣列中的第一個元素 (可以是任何資料類型)。
|
相關 API 元素
範例 ( 如何使用本範例 )
a
、b
和 c
的 Array 物件 letters
。 然後會使用 shift()
方法從 letters
中移除第一個元素 (a
),並將它指定給字串 firstLetter
。
var letters:Array = new Array("a", "b", "c"); var firstLetter:String = letters.shift(); trace(letters); // b,c trace(firstLetter); // a
slice | () | 方法 |
AS3 function slice(startIndex:int = 0, endIndex:int = 16777215):Array
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
傳回新的陣列 (此新陣列是由原始陣列的元素範圍所組成),但是不會修改原始陣列。 傳回的陣列包含 startIndex
元素及其後的所有元素,但是不包含 endIndex
元素。
如果您沒有傳遞任何參數,新的陣列便會是原始陣列的重製副本 (陰影副本)。
參數
startIndex:int (default = 0 ) — 數字,指定片段開始點的索引。 如果 startIndex 為負值,表示起點是從陣列的結尾開始,而 -1 就是指最後一個元素。
| |
endIndex:int (default = 16777215 ) — 數字,指定片段結束點的索引。 如果您省略這個參數,這個片段就會包含從陣列開始點到陣列結束點的所有元素。 如果 endIndex 為負值,表示指定的終點是在陣列的結尾,而 -1 就是指最後一個元素。
|
Array — 陣列,由來自原始陣列的元素範圍組成。
|
範例 ( 如何使用本範例 )
[a,b,c,d,e,f]
的 Array 物件 letters
。 然後會建立陣列 someLetters
,其方式是針對元素一 (b
) 到元素三 (d
) 呼叫 slice()
方法,然後會產生包含元素 b
和 c
的陣列。
var letters:Array = new Array("a", "b", "c", "d", "e", "f"); var someLetters:Array = letters.slice(1,3); trace(letters); // a,b,c,d,e,f trace(someLetters); // b,c
[a,b,c,d,e,f]
的 Array 物件 letters
,然後會針對元素二 (c
) 呼叫 slice()
方法來建立陣列 someLetters
,於是便產生包含元素 [c,d,e,f]
的陣列。
var letters:Array = new Array("a", "b", "c", "d", "e", "f"); var someLetters:Array = letters.slice(2); trace(letters); // a,b,c,d,e,f trace(someLetters); // c,d,e,f
[a,b,c,d,e,f]
的 Array 物件 letters
。 然後會針對倒數第二個元素 (e
) 呼叫 slice()
方法來建立陣列 someLetters
,如此便產生包含元素 e
和 f
的陣列。
var letters:Array = new Array("a", "b", "c", "d", "e", "f"); var someLetters:Array = letters.slice(-2); trace(letters); // a,b,c,d,e,f trace(someLetters); // e,f
some | () | 方法 |
AS3 function some(callback:Function, thisObject:* = null):Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會對陣列中的每個項目執行測試函數,直到抵達傳回 true
的項目為止。 您可以使用此方法,判斷陣列中的所有項目是否符合準則,例如具有小於特定數字的值。
對於此方法而言,如果第一個參數 callback
是方法結束項,第二個參數 thisObject
就必須是 null
。假設您在影片片段中建立名為 me
的函數:
function myFunction(obj:Object):void { //your code here }
假設您接著對名稱為 myArray
的陣列使用 some()
方法:
myArray.some(myFunction, me);
由於 myFunction
是 Timeline 類別的成員,不能由 me
覆寫,Flash 執行階段便會擲出例外。您可以將此函數指定給變數,以避免這項執行階段錯誤,如下所示:
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.some(myFunction, me);
參數
callback:Function — 要針對陣列中每一個項目執行的函數。 此函數可以包含簡單的比較 (例如,item < 20 ) 或是較複雜的操作,而且必須搭配三個引數 (項目的值、項目的索引和 Array 物件) 加以叫用:
function callback(item:*, index:int, array:Array):Boolean; | |
thisObject:* (default = null ) — 要用來當做函數之 this 使用的物件。
|
Boolean — 如果陣列中有任何項目針對指定的函數傳回 true ,則 Boolean 值為 true ,否則為 false 。
|
相關 API 元素
範例 ( 如何使用本範例 )
package { import flash.display.Sprite; public class Array_some extends Sprite { public function Array_some() { var arr:Array = new Array(); arr[0] = "one"; arr[1] = "two"; arr[3] = "four"; var isUndef:Boolean = arr.some(isUndefined); if (isUndef) { trace("array contains undefined values: " + arr); } else { trace("array contains no undefined values."); } } private function isUndefined(element:*, index:int, arr:Array):Boolean { return (element == undefined); } } }
sort | () | 方法 |
AS3 function sort(... args):Array
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
對陣列中的元素進行排序。 此方法會根據 Unicode 值進行排序。(ASCII 是 Unicode 的子集)。
根據預設,Array
。sort()
的運作方式如下所示:
- 排序動作有區分大小寫 (Z 位於 a 之前)。
- 以遞增方式排序 (a 位於 b 之前)。
- 陣列會遭到修改,以反映出排序順序;具有相同排序欄位的多個元素會被連續置於排序陣列中 (不會依照特定順序)。
- 所有的元素,無論屬於何種資料類型,都會如字串般排序。所以 100 會在 99 之前,因為 "1" 是比 "9" 低的字串值。
若不使用預設設定來排序陣列,您可以使用 ...args
參數說明之 sortOptions
部分所描述的其中一個排序選項,或是建立自訂的函數以進行排序。 如果您建立自訂函數,您便可以在呼叫 sort()
方法時,使用自訂函數的名稱做為第一個引數 (compareFunction
)。
參數
... args — 引數,用以指定比較函數及決定排序行為的一個或多個值。
這個方法會使用
|
Array — 傳回的值會視您是否有傳遞任何參數而定,如下列清單中所述:
|
相關 API 元素
範例 ( 如何使用本範例 )
[spinach, green pepper, cilantro, onion, avocado]
的 Array 物件 vegetables
。 然後會由 sort()
方法來排序此陣列 (呼叫此方法時不含任何參數)。 結果會是依字母順序排序的 vegetables
([avocado, cilantro, green pepper, onion, spinach]
)。
var vegetables:Array = new Array("spinach", "green pepper", "cilantro", "onion", "avocado"); trace(vegetables); // spinach,green pepper,cilantro,onion,avocado vegetables.sort(); trace(vegetables); // avocado,cilantro,green pepper,onion,spinach
[spinach, green pepper, Cilantro, Onion, and Avocado]
的 Array 物件 vegetables
。 然後會由 sort()
方法來排序此陣列 (第一次呼叫此方法時不含任何參數);結果會是 [Avocado,Cilantro,Onion,green pepper,spinach]
。 然後會再次針對 vegetables
呼叫 sort()
(使用 CASEINSENSITIVE
常數當做參數)。 結果會是依字母順序排序的 vegetables
([Avocado, Cilantro, green pepper, Onion, spinach]
)。
var vegetables:Array = new Array("spinach", "green pepper", "Cilantro", "Onion", "Avocado"); vegetables.sort(); trace(vegetables); // Avocado,Cilantro,Onion,green pepper,spinach vegetables.sort(Array.CASEINSENSITIVE); trace(vegetables); // Avocado,Cilantro,green pepper,Onion,spinach
vegetables
,然後透過 push()
的五個呼叫來填入。 每次呼叫 push()
時,Vegetable()
建構函式的呼叫就會建立新的 Vegetable
物件,此建構函式可接受 String (name
) 和 Number (price
) 物件。 以下列陣列結果中所顯示的值呼叫 push()
五次:[lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44]
。然後再使用 sort()
方法來排序陣列,以產生陣列 [asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44]
。
var vegetables:Array = new Array(); vegetables.push(new Vegetable("lettuce", 1.49)); vegetables.push(new Vegetable("spinach", 1.89)); vegetables.push(new Vegetable("asparagus", 3.99)); vegetables.push(new Vegetable("celery", 1.29)); vegetables.push(new Vegetable("squash", 1.44)); trace(vegetables); // lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44 vegetables.sort(); trace(vegetables); // asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44 //The following code defines the Vegetable class class Vegetable { private var name:String; private var price:Number; public function Vegetable(name:String, price:Number) { this.name = name; this.price = price; } public function toString():String { return " " + name + ":" + price; } }
sort()
方法會搭配自訂排序函數 (sortOnPrice
) 使用,此函數會根據價格 (而非字母順序) 來排序。 請注意,新的函數 getPrice()
會擷取價格。
var vegetables:Array = new Array(); vegetables.push(new Vegetable("lettuce", 1.49)); vegetables.push(new Vegetable("spinach", 1.89)); vegetables.push(new Vegetable("asparagus", 3.99)); vegetables.push(new Vegetable("celery", 1.29)); vegetables.push(new Vegetable("squash", 1.44)); trace(vegetables); // lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44 vegetables.sort(sortOnPrice); trace(vegetables); // celery:1.29, squash:1.44, lettuce:1.49, spinach:1.89, asparagus:3.99 function sortOnPrice(a:Vegetable, b:Vegetable):Number { var aPrice:Number = a.getPrice(); var bPrice:Number = b.getPrice(); if(aPrice > bPrice) { return 1; } else if(aPrice < bPrice) { return -1; } else { //aPrice == bPrice return 0; } } // The following code defines the Vegetable class and should be in a separate package. class Vegetable { private var name:String; private var price:Number; public function Vegetable(name:String, price:Number) { this.name = name; this.price = price; } public function getPrice():Number { return price; } public function toString():String { return " " + name + ":" + price; } }
[3,5,100,34,10]
的 Array 物件 numbers
。 呼叫 sort()
時如果不含任何參數,則會以字母順序排序,而產生不想要的結果 [10,100,3,34,5]
。 若要適當排序數值,您必須將常數 NUMERIC
傳遞給 sort()
方法,此方法會排序 numbers
,如下所示:[3,5,10,34,100]
。
注意: sort()
函數的預設行為是將每個實體當做字串處理。 如果您使用 Array.NUMERIC
引數,Flash 執行階段會為了進行排序而將任何非數字的值轉換成整數。如果失敗,執行階段會擲出錯誤。例如,執行階段可以將 "6"
的字串值成功轉換成整數,但是如果遇到值為 "six"
的字串值,則會擲出錯誤。
var numbers:Array = new Array(3,5,100,34,10); trace(numbers); // 3,5,100,34,10 numbers.sort(); trace(numbers); // 10,100,3,34,5 numbers.sort(Array.NUMERIC); trace(numbers); // 3,5,10,34,100
sortOn | () | 方法 |
AS3 function sortOn(fieldName:Object, options:Object = null):Array
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
根據陣列中的一個或多個欄位,對陣列中的元素進行排序。 陣列應該會具有下列特性:
- 此陣列是索引陣列,而不是關聯陣列。
- 陣列的每個元素都保留具有一個或多個屬性的物件。
- 所有物件至少都具有一個相同的屬性,其值可用來排序陣列。 這樣的屬性稱為 field。
若您傳遞多個 fieldName
參數,則第一個欄位代表的是主要排序欄位,第二個欄位代表的是次要排序欄位,其他依此類推。Flash 會根據 Unicode 值進行排序。(ASCII 是 Unicode 的子集)。 如果比較的任一個元素中,都未包含 fieldName
參數中指定的欄位,會假設該欄位設定為 undefined
,並且會將元素連續置於排序的陣列中 (不依照特定順序)。
根據預設,Array
。sortOn()
的運作方式如下所示:
- 排序動作有區分大小寫 (Z 位於 a 之前)。
- 以遞增方式排序 (a 位於 b 之前)。
- 陣列會遭到修改,以反映出排序順序;具有相同排序欄位的多個元素會被連續置於排序陣列中 (不會依照特定順序)。
- 數值欄位會視為字串進行排序,因此 100 位於 99 之前,因為 "1" 是位於 "9" 之前的字串值。
Flash Player 7 中加入了 options
參數,可以用來覆寫預設的排序行為。 若要對簡單陣列 (例如,只有一個欄位的陣列) 進行排序,或者要指定 options
參數不支援的某種排序順序,請使用 Array.sort()
。
若要傳遞多個旗標,請使用位元 OR (|
) 運算子來加以分隔:
my_array.sortOn(someFieldName, Array.DESCENDING | Array.NUMERIC);
Flash Player 8 加入的功能是在排序多個欄位時為每個欄位指定不同的排序選項。 在 Flash Player 8 及更新版本中,options
參數會接受排序選項的陣列,因此每個排序選項都會對應至 fieldName
參數中的排序欄位。 下列範例會使用遞減排序來排序主要排序欄位 a
、使用數值排序來排序次要排序欄位 b
,並使用不區分大小寫排序來排序第三位排序欄位 c
:
Array.sortOn (["a", "b", "c"], [Array.DESCENDING, Array.NUMERIC, Array.CASEINSENSITIVE]);
注意: fieldName
和 options
陣列必須具有相同的元素數目,否則會忽略 options
陣列。 此外,Array.UNIQUESORT
和 Array.RETURNINDEXEDARRAY
選項只能用來當做陣列的第一個元素,否則便會忽略這些選項。
參數
fieldName:Object — 字串,可識別要當做排序值使用的欄位,或是陣列,其中第一個元素代表主要排序欄位,第二個元素則代表次要排序欄位,其他依此類推。
| |
options:Object (default = null ) — 一個或多個數字或已定義的常數名稱 (以 bitwise OR (|) 運算子分隔),會變更排序行為。 下列為 options 參數可接受的值:
若您採用的是旗標的字串形式 (例如 |
Array — 傳回的值會視您是否有傳遞任何參數而定:
|
相關 API 元素
範例 ( 如何使用本範例 )
vegetables
,然後使用 push()
的五個呼叫來填入此陣列。 每次呼叫 push()
時,就會藉由呼叫 Vegetable()
建構函式來建立新的 Vegetable
物件,此建構函式可接受 String (name
) 和 Number (price
) 物件。 以下列陣列結果中所顯示的值呼叫 push()
五次。 [lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44]
。接著,sortOn()
方法會搭配 name
參數使用,以產生下列陣列:[asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44]
。會再次使用價格參數及 NUMERIC 和 DESCENDING 常數 (用來產生以遞減數字順序排序的陣列) 來呼叫 sortOn()
方法:[asparagus:3.99, spinach:1.89, lettuce:1.49, squash:1.44, celery:1.29]
。
var vegetables:Array = new Array(); vegetables.push(new Vegetable("lettuce", 1.49)); vegetables.push(new Vegetable("spinach", 1.89)); vegetables.push(new Vegetable("asparagus", 3.99)); vegetables.push(new Vegetable("celery", 1.29)); vegetables.push(new Vegetable("squash", 1.44)); trace(vegetables); // lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44 vegetables.sortOn("name"); trace(vegetables); // asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44 vegetables.sortOn("price", Array.NUMERIC | Array.DESCENDING); trace(vegetables); // asparagus:3.99, spinach:1.89, lettuce:1.49, squash:1.44, celery:1.29 class Vegetable { public var name:String; public var price:Number; public function Vegetable(name:String, price:Number) { this.name = name; this.price = price; } public function toString():String { return " " + name + ":" + price; } }
records
,然後使用 push()
的三個呼叫來填入此陣列。 每次呼叫 push()
時,就會將 name
和 city
字串及 zip
編號加入到 records
。 然後使用三個 for
迴圈列印出陣列元素。 第一個 for
迴圈會以元素加入的順序列印元素。 第二個 for
迴圈會在已經使用 sortOn()
方法,先依據名稱再依據城市來排序 records
之後執行。 第三個 for
迴圈會產生不同的輸出,因為會先根據城市再依據名稱重新排序 records
。
var records:Array = new Array(); records.push({name:"john", city:"omaha", zip:68144}); records.push({name:"john", city:"kansas city", zip:72345}); records.push({name:"bob", city:"omaha", zip:94010}); for(var i:uint = 0; i < records.length; i++) { trace(records[i].name + ", " + records[i].city); } // Results: // john, omaha // john, kansas city // bob, omaha trace("records.sortOn('name', 'city');"); records.sortOn(["name", "city"]); for(var i:uint = 0; i < records.length; i++) { trace(records[i].name + ", " + records[i].city); } // Results: // bob, omaha // john, kansas city // john, omaha trace("records.sortOn('city', 'name');"); records.sortOn(["city", "name"]); for(var i:uint = 0; i < records.length; i++) { trace(records[i].name + ", " + records[i].city); } // Results: // john, kansas city // bob, omaha // john, omaha
users
,然後使用 push()
的四個呼叫來填入此陣列。 每次呼叫 push()
時,就會使用 User()
建構函式來建立 User 物件,並將 name
字串和 age
uint 加入到使用者。 產生的陣列組會是 [Bob:3,barb:35,abcd:3,catchy:4]
。
然後會以下列方式排序陣列:
- 只依據名稱,產生陣列
[Bob:3,abcd:3,barb:35,catchy:4]
- 依據名稱及使用
CASEINSENSITIVE
常數,產生陣列[abcd:3,barb:35,Bob:3,catchy:4]
- 依據名稱及使用
CASEINSENSITIVE
和DESCENDING
常數,產生陣列[catchy:4,Bob:3,barb:35,abcd:3]
- 只依據年齡,產生陣列
[abcd:3,Bob:3,barb:35,catchy:4]
- 依據年齡及使用
NUMERIC
常數,產生陣列[Bob:3,abcd:3,catchy:4,barb:35]
- 依據年齡及使用
DESCENDING
和NUMERIC
常數,產生陣列[barb:35,catchy:4,Bob:3,abcd:3]
然後會建立名為 indices
的陣列,並根據年齡及使用 NUMERIC
和 RETURNINDEXEDARRAY
常數來指定排序結果,如此會產生陣列 [Bob:3,abcd:3,catchy:4,barb:35]
,然後會使用 for
迴圈列印出此陣列。
class User { public var name:String; public var age:Number; public function User(name:String, age:uint) { this.name = name; this.age = age; } public function toString():String { return this.name + ":" + this.age; } } var users:Array = new Array(); users.push(new User("Bob", 3)); users.push(new User("barb", 35)); users.push(new User("abcd", 3)); users.push(new User("catchy", 4)); trace(users); // Bob:3,barb:35,abcd:3,catchy:4 users.sortOn("name"); trace(users); // Bob:3,abcd:3,barb:35,catchy:4 users.sortOn("name", Array.CASEINSENSITIVE); trace(users); // abcd:3,barb:35,Bob:3,catchy:4 users.sortOn("name", Array.CASEINSENSITIVE | Array.DESCENDING); trace(users); // catchy:4,Bob:3,barb:35,abcd:3 users.sortOn("age"); trace(users); // abcd:3,Bob:3,barb:35,catchy:4 users.sortOn("age", Array.NUMERIC); trace(users); // Bob:3,abcd:3,catchy:4,barb:35 users.sortOn("age", Array.DESCENDING | Array.NUMERIC); trace(users); // barb:35,catchy:4,Bob:3,abcd:3 var indices:Array = users.sortOn("age", Array.NUMERIC | Array.RETURNINDEXEDARRAY); var index:uint; for(var i:uint = 0; i < indices.length; i++) { index = indices[i]; trace(users[index].name, ": " + users[index].age); } // Results: // Bob : 3 // abcd : 3 // catchy : 4 // barb : 35
splice | () | 方法 |
AS3 function splice(startIndex:int, deleteCount:uint, ... values):Array
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
在陣列中增加和移除元素。 這個方法會修改陣列,但是不會製作副本。
注意: 若要在 Array 的子類別中覆寫此方法,請使用 ...args
做為參數,如以下範例所示:
public override function splice(...args) { // your statements here }
參數
startIndex:int — 整數,用以指定陣列中插入或刪除開始位置之元素的索引。 您可以使用負整數,指定相對於陣列結尾的位置 (例如,-1 是陣列的最後一個元素)。
| |
deleteCount:uint — 整數,指定要刪除的元素數目。 這個數字會包含 startIndex 參數中所指定的元素。 如果您沒有指定 deleteCount 參數的值,此方法便會刪除此陣列中從 startIndex 元素到最後一個元素的所有值。 如果這個值為 0,則不會刪除任何元素。
| |
... values — 含有一個或多個逗號分隔值的選擇性清單,以便將其插入此陣列中 startIndex 參數所指定的位置。如果輸入的值屬於 Array 類型,則這個陣列會保留不變並以單一元素的形式予以插入。例如,如果您將現有長度為 3 的陣列與另一個長度為 3 的陣列接合起來,則產生的陣列將只有 4 個元素。不過,其中一個元素會是長度為 3 的陣列。
|
Array — 陣列,其中包含從原始陣列中移除的元素。
|
範例 ( 如何使用本範例 )
[spinach, green pepper, cilantro, onion, avocado]
的 Array 物件 vegetables
。 然後會使用參數 2 和 2 呼叫 splice()
方法,此方法會將 cilantro
和 onion
指定給 spliced
陣列。 然後 vegetables
陣列便會包含 [spinach,green pepper,avocado]
。 會使用參數 1、0 和 spliced
陣列第二次呼叫 splice()
方法,將 [cilantro,onion]
指定為 vegetables
中的第二個元素。
var vegetables:Array = new Array("spinach", "green pepper", "cilantro", "onion", "avocado"); var spliced:Array = vegetables.splice(2, 2); trace(vegetables); // spinach,green pepper,avocado trace(spliced); // cilantro,onion vegetables.splice(1, 0, spliced); trace(vegetables); // spinach,cilantro,onion,green pepper,avocado
cilantro
和 onion
描出的形式就像 vegetables
有 5 個元素一樣,但是實際上只有四個 (第二個元素是另一個包含兩個元素的陣列)。 若要個別加入 cilantro
和 onion
,您會使用:
var vegetables:Array = new Array("spinach", "green pepper", "cilantro", "onion", "avocado"); var spliced:Array = vegetables.splice(2, 2); trace(vegetables); // spinach,green pepper,avocado trace(spliced); // cilantro,onion vegetables.splice(1, 0, "cilantro", "onion"); trace(vegetables); // spinach,cilantro,onion,green pepper,avocado
toLocaleString | () | 方法 |
toString | () | 方法 |
public function toString():String
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會傳回字串,此字串代表指定之陣列中的元素。 陣列中的每一個元素 (從索引 0 開始,到最大的索引為止) 都會轉換成以逗號分隔的連接字串。 若要指定自訂的分隔符號,請使用 Array.join()
方法。
String — 陣列元素的字串。
|
相關 API 元素
範例 ( 如何使用本範例 )
vegnums
變數中。
var vegetables:Array = new Array(); vegetables.push(1); vegetables.push(2); vegetables.push(3); vegetables.push(4); vegetables.push(5); var vegnums:String = vegetables.toString(); trace(vegnums+",6"); // 1,2,3,4,5,6
unshift | () | 方法 |
AS3 function unshift(... args):uint
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
在陣列開頭加入一個或多個元素,並傳回新的陣列長度。 陣列中的其他元素都會從其原始位置 i 移動到 i+1。
參數
... args — 要在陣列開頭插入的一個或多個數字、元素或變數。
|
uint — 整數,代表陣列的新長度。
|
相關 API 元素
範例 ( 如何使用本範例 )
names
。 Bill
和 Jeff
字串會由 push()
方法加入,而 Alfred
和 Kyle
字串會由 unshift()
方法的兩個呼叫加入到 names
的開頭。
var names:Array = new Array(); names.push("Bill"); names.push("Jeff"); trace(names); // Bill,Jeff names.unshift("Alfred"); names.unshift("Kyle"); trace(names); // Kyle,Alfred,Bill,Jeff
CASEINSENSITIVE | 常數 |
public static const CASEINSENSITIVE:uint = 1
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會針對 Array 類別排序方法指定不區分大小寫的排序方式。 您可以將這個常數用於 sort()
或 sortOn()
方法中的 options
參數。
此常數的值為 1。
相關 API 元素
DESCENDING | 常數 |
public static const DESCENDING:uint = 2
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會針對 Array 類別排序方法指定遞減排序方式。 您可以將這個常數用於 sort()
或 sortOn()
方法中的 options
參數。
此常數的值為 2。
相關 API 元素
NUMERIC | 常數 |
public static const NUMERIC:uint = 16
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會針對 Array 類別排序方法指定數字 (而非字元字串) 排序方式。 在 options
參數中包含此常數,會使 sort()
與 sortOn()
方法將數字排序為數值,而非數值字元的字串。 如果不使用 NUMERIC
常數,排序便會將每個陣列元素視為字元字串,並以 Unicode 順序產生結果。
例如,假設陣列的值是 [2005, 7, 35]
,如果在 options
參數中「沒有」包含 NUMERIC
常數,排序的陣列會是 [2005, 35, 7]
,不過如果「有」包含 NUMERIC
常數,排序的陣列便會是 [7, 35, 2005]
。
這個常數只會套用到陣列中的數字,而不會套用到包含數值資料的字串,如 ["23", "5"]
。
此常數的值為 16。
相關 API 元素
RETURNINDEXEDARRAY | 常數 |
public static const RETURNINDEXEDARRAY:uint = 8
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會指定排序傳回由陣列索引所組成的陣列。 您可以針對 sort()
或 sortOn()
方法中的 options
參數使用此常數,如此您就能存取陣列元素的多種檢視,同時原始陣列也不會遭到修改。
此常數的值為 8。
相關 API 元素
UNIQUESORT | 常數 |
public static const UNIQUESORT:uint = 4
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會針對 Array 類別排序方法指定唯一的排序需求。 您可以將這個常數用於 sort()
或 sortOn()
方法中的 options
參數。 如果要排序的任何兩個元素或欄位有相同的值,唯一的排序選項就會終止排序。
此常數的值為 4。
相關 API 元素
myArr
,不含任何引數且初始長度為 0:
package { import flash.display.Sprite; public class ArrayExample extends Sprite { public function ArrayExample() { var myArr:Array = new Array(); trace(myArr.length); // 0 } } }
Tue Jun 12 2018, 03:47 PM Z