套件最上層
類別public dynamic class Array
繼承Array Inheritance Object

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

Array 類別可讓您存取及操作陣列。 陣列索引會從零開始,這表示陣列中的第一個元素是 [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,否則便會喪失將資料儲存在陣列中的能力。

檢視範例

請參閱

[] (array access)
Object class
函數參數


公用 屬性
 屬性定義自
 Inheritedconstructor : Object
類別物件的參照或是特定物件實體的建構函數。
Object
  length : uint
一個非負的整數,用來指定陣列中的元素數目。
Array
 Inheritedprototype : Object
[static] 類別或函數物件之原型物件的參照。
Object
公用 方法
 方法定義自
  
Array(numElements:int = 0)
可讓您建立具有指定之元素數目的陣列。
Array
  
Array(... values)
可讓您建立包含指定之元素的陣列。
Array
  
concat(... args):Array
將參數中指定的元素和陣列中的元素連接,並建立新的陣列。
Array
  
every(callback:Function, thisObject:* = null):Boolean
對陣列中的每個項目執行測試函數,直到抵達針對指定之函數傳回 false 的項目為止。
Array
  
filter(callback:Function, thisObject:* = null):Array
針對陣列中的每個項目執行測試函數,並為針對指定之函數傳回 true 的所有項目建構新的陣列。
Array
  
forEach(callback:Function, thisObject:* = null):void
會針對陣列中的每個項目執行函數。
Array
 Inherited
指出物件是否有已定義的指定屬性。
Object
  
indexOf(searchElement:*, fromIndex:int = 0):int
使用嚴謹相等 (===) 在陣列中搜尋某個項目,並傳回該項目的索引位置。
Array
 Inherited
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。
Object
  
join(sep:*):String
會將陣列中的元素轉換成字串、在元素之間插入指定的分隔符號、連接元素,然後傳回最後產生的字串。
Array
  
lastIndexOf(searchElement:*, fromIndex:int = 0x7fffffff):int
在陣列中搜尋某個項目 (會從最後一個項目回移),並使用嚴謹相等 (===) 傳回符合之項目的索引位置。
Array
  
map(callback:Function, thisObject:* = null):Array
會針對陣列中的每個項目執行函數,並建構新的項目陣列,其中的項目會對應於原始陣列中每個項目的函數執行結果。
Array
  
pop():*
會移除陣列中的最後一個元素,並傳回該元素的值。
Array
 Inherited
指出指定的屬性是否存在,以及是否可列舉。
Object
  
push(... args):uint
在陣列結尾加入一個或多個元素,並傳回新的陣列長度。
Array
  
在原地將陣列反轉。
Array
 Inherited
為迴圈作業設定動態屬性的可用性。
Object
  
shift():*
移除陣列中的第一個元素,並傳回該元素。
Array
  
slice(startIndex:int = 0, endIndex:int = 16777215):Array
傳回新的陣列 (此新陣列是由原始陣列的元素範圍所組成),但是不會修改原始陣列。
Array
  
some(callback:Function, thisObject:* = null):Boolean
對陣列中的每個項目執行測試函數,直到抵達傳回 true 的項目為止。
Array
  
sort(... args):Array
對陣列中的元素進行排序。
Array
  
sortOn(fieldName:Object, options:Object = null):Array
根據陣列中的一個或多個欄位,對陣列中的元素進行排序。
Array
  
splice(startIndex:int, deleteCount:uint, ... values):Array
在陣列中增加和移除元素。
Array
  
會傳回字串,此字串代表指定之陣列中的元素。
Array
  
會傳回字串,此字串代表指定之陣列中的元素。
Array
  
unshift(... args):uint
在陣列開頭加入一個或多個元素,並傳回新的陣列長度。
Array
 Inherited
會傳回指定之物件的基本值。
Object
公用 常數
 常數定義自
  CASEINSENSITIVE : uint = 1
[static] 會針對 Array 類別排序方法指定不區分大小寫的排序方式。
Array
  DESCENDING : uint = 2
[static] 會針對 Array 類別排序方法指定遞減排序方式。
Array
  NUMERIC : uint = 16
[static] 會針對 Array 類別排序方法指定數字 (而非字元字串) 排序方式。
Array
  RETURNINDEXEDARRAY : uint = 8
[static] 會指定排序傳回由陣列索引所組成的陣列。
Array
  UNIQUESORT : uint = 4
[static] 會針對 Array 類別排序方法指定唯一的排序需求。
Array
屬性詳細資訊
length屬性
length:uint  [read-write]

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

一個非負的整數,用來指定陣列中的元素數目。 如果在陣列中增加新的元素,會自動更新這個屬性。 當您指定值給陣列元素 (例如,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() 方法兩次來移除 BillKyle,讓最後的 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(numElements:int = 0)

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

可讓您建立具有指定之元素數目的陣列。 如果不指定任何參數,則會建立含有 0 個元素的陣列。 如果您指定元素的數目,便會建立具有 numElements 個元素的陣列。

注意:此類別會顯示兩個建構函式方法項目,因為該建構函式能接受變數類型的引數。 如每個項目中所詳述,此建構函式會根據傳遞之引數的類型與數目而有不同的行為。 ActionScript 3.0 並不支援方法或建構函式多載。

參數
numElements:int (default = 0) — 用來指定陣列中元素數目的整數。

擲回值
RangeError — 此引數是大於或等於 0 的非整數數字。

請參閱


範例

下列範例會建立 Array 物件 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
        }
    }
}

下列範例會建立包含 5 個初始元素且長度為 5 的 Array 物件,並將字串 "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
        }
    }
}
Array()建構函式 
public function Array(... values)

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

可讓您建立包含指定之元素的陣列。 您可以指定任何類型的值。 陣列中的第一個元素永遠都有 0 的索引 (或位置)。

注意:此類別會顯示兩個建構函式項目,因為該建構函式能接受變數類型的引數。 如每個項目中所詳述,此建構函式會根據傳遞之引數的類型與數目而有不同的行為。 ActionSript 3.0 並不支援方法或建構函式多載。

參數
... values — 一個或多個任意值的逗號分隔清單。

注意:如果只將單一數值參數傳遞給 Array 建構函式,就會假定它要指定陣列的 length 屬性。


擲回值
RangeError — 此引數是大於或等於 0 的非整數數字。

請參閱


範例

下列範例會建立初始長度為 3 的新 Array 物件、將字串元素 onetwothree 填入此陣列中,然後將這些元素轉換為字串。
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
        }
    }
}
方法詳細資訊
concat()方法
AS3 function concat(... args):Array

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

將參數中指定的元素和陣列中的元素連接,並建立新的陣列。 如果參數指定陣列,便會連接該陣列的元素。

參數

... args — 要在新陣列中連接之任何資料類型 (如數字、元素或字串) 的值。 如果您沒有傳遞任何值,新的陣列便會是原始陣列的重製副本。

傳回值
Array — 陣列,包含此陣列的元素,並後接參數中的元素。

範例

下列程式碼會建立四個 Array 物件:
  • numbers 陣列,其中包含數字 123
  • letters 陣列,其中包含字母 abc
  • 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
Player 版本 : Flash Player 9

會對陣列中的每一個項目執行測試函數,直到抵達針對指定之函數傳回 false 的項目為止。 您可以使用此方法,判斷陣列中的所有項目是否都符合準則,例如具有小於特定數字的值。

對於此方法而言,如果第一個參數 callback 是方法結束項,第二個參數 thisObject 就必須是 null。 假設您在影片片段中建立名為 me 的函數:

     function myFunction(obj:Object):void { //您的程式碼位置 }
     

假設您接著對名稱為 myArray 的陣列使用 every() 方法:

     myArray.every(myFunction, me);
     

由於 myFunction 是 Timeline 類別的成員,不能由 me 覆寫,Flash Player 便會擲回例外。 您可以將此函數指定給變數,以避免這項執行階段錯誤,如下所示:

     var myFunction:Function = function(obj:Object):void { //您的程式碼位置 }; 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

請參閱


範例

下列範例會測試兩個陣列,以便判斷每個陣列中的每個項目是否都是數字。 此範例也會輸出測試的結果,顯示 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
Player 版本 : Flash Player 9

針對陣列中的每個項目執行測試函數,並為針對指定之函數傳回 true 的所有項目建構新的陣列。 如果某個項目傳回 false,則新的陣列中不會包括該項目。

對於此方法而言,如果第一個參數 callback 是方法結束項,第二個參數 thisObject 就必須是 null。 假設您在影片片段中建立名為 me 的函數:

     function myFunction(obj:Object):void { //您的程式碼位置 }
     

然後假設您針對名為 myArray 的陣列使用 filter() 方法:

 
     myArray.filter(myFunction, me);
     

由於 myFunction 是 Timeline 類別的成員,不能由 me 覆寫,Flash Player 便會擲回例外。 您可以將此函數指定給變數,以避免這項執行階段錯誤,如下所示:

     var myFunction:Function = function(obj:Object):void { //您的程式碼位置 }; myArray.filter(myFunction, me);
     

參數

callback:Function — 要針對陣列中每一個項目執行的函數。 此函數可以包含簡單的比較 (例如,item < 20) 或是較複雜的操作,而且必須搭配三個引數 (項目的值、項目的索引和 Array 物件) 加以叫用:
    function callback(item:*, index:int, array:Array):Boolean;
 
thisObject:* (default = null) — 要用來當做函數之 this 使用的物件。

傳回值
Array — 新的陣列,其中包含了原始陣列中傳回 true 的所有項目。

請參閱


範例

下列範例會建立所有身分為經理之員工的陣列:
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
Player 版本 : Flash Player 9

會針對陣列中的每個項目執行函數。

對於此方法而言,如果第一個參數 callback 是方法結束項,第二個參數 thisObject 就必須是 null。 假設您在影片片段中建立名為 me 的函數:

     function myFunction(obj:Object):void { //您的程式碼位置 }
     

假設您接著對名稱為 myArray 的陣列使用 forEach() 方法:

     myArray.forEach(myFunction, me);
     

由於 myFunction 是 Timeline 類別的成員,不能由 me 覆寫,Flash Player 便會擲回例外。 您可以將此函數指定給變數,以避免這項執行階段錯誤,如下所示:

     var myFunction:Function = function(obj:Object):void { //您的程式碼位置 }; 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
Player 版本 : Flash Player 9

會使用嚴謹相等 (===) 在陣列中搜尋某個項目,並傳回該項目的索引位置。

參數

searchElement:* — 要在陣列中尋找的項目。
 
fromIndex:int (default = 0) — 要在陣列中開始搜尋項目的位置。

傳回值
int — 此項目在陣列中的索引位置 (從零開始)。 如果找不到 searchElement 引數,傳回值會是 -1。

請參閱


範例

下列範例會顯示指定之陣列的位置:
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
        }
    }
}
join()方法 
AS3 function join(sep:*):String

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

會將陣列中的元素轉換成字串、在元素之間插入指定的分隔符號、連接元素,然後傳回最後產生的字串。 巢狀的陣列永遠是用逗號 (,) 來分隔,而不是用傳遞給 join() 方法的分隔符號來分隔。

參數

sep:* — 在傳回的字串中分隔陣列元素的字元或字串。 如果省略這個參數,便會使用逗號做為預設分隔符號。

傳回值
String — 字串,由轉換成字串的陣列元素組成,並以指定的參數分隔。

請參閱


範例

下列程式碼會使用 join() 方法來建立包含元素 onetwothree 的 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
Player 版本 : Flash Player 9

會在陣列中搜尋某個項目 (從最後一個項目往回移),並使用嚴謹相等 (===) 傳回符合之項目的索引位置。

參數

searchElement:* — 要在陣列中尋找的項目。
 
fromIndex:int (default = 0x7fffffff) — 要在陣列中開始搜尋項目的位置。 預設值是索引可允許的最大值。 如果沒有指定 fromIndex,搜尋便會從陣列中的最後一個項目開始。

傳回值
int — 此項目在陣列中的索引位置 (從零開始)。 如果找不到 searchElement 引數,傳回值會是 -1。

請參閱


範例

下列範例會顯示指定之陣列的位置:
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
Player 版本 : Flash Player 9

會針對陣列中的每個項目執行函數,並建構新的項目陣列,其中的項目會對應於原始陣列中每個項目的函數執行結果。

對於此方法而言,如果第一個參數 callback 是方法結束項,第二個參數 thisObject 就必須是 null。 假設您在影片片段中建立名為 me 的函數:

     function myFunction(obj:Object):void { //您的程式碼位置 }
     

假設您接著對名稱為 myArray 的陣列使用 map() 方法:

     myArray.map(myFunction, me);
     

由於 myFunction 是 Timeline 類別的成員,不能由 me 覆寫,Flash Player 便會擲回例外。 您可以將此函數指定給變數,以避免這項執行階段錯誤,如下所示:

     var myFunction:Function = function(obj:Object):void { //您的程式碼位置 }; myArray.map(myFunction, me);
     

參數

callback:Function — 要針對陣列中每一個項目執行的函數。 此函數可以包含簡單的命令 (例如,變更字串陣列的大小寫) 或更複雜的作業,而且會搭配三個引數 (項目的值、項目的索引,以及 Array 物件) 加以叫用:
    function callback(item:*, index:int, array:Array):void;
 
thisObject:* (default = null) — 要用來當做函數之 this 使用的物件。

傳回值
Array — 新的陣列,其中包含原始陣列中每個項目的函數執行結果。

請參閱


範例

下列範例會將陣列中的所有項目變更為使用大寫字母:
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
Player 版本 : Flash Player 9

會移除陣列中的最後一個元素,並傳回該元素的值。

傳回值
* — 指定之陣列中最後一個元素 (可以是任何資料類型) 的值。

請參閱


範例

下列程式碼會建立包含元素 abc 的 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
Player 版本 : Flash Player 9

在陣列結尾加入一個或多個元素,並傳回新的陣列長度。

參數

... args — 要附加至陣列的一個或多個值。

傳回值
uint — 整數,代表新陣列的長度。

請參閱


範例

下列程式碼會建立空的 Array 物件 letters,然後使用 push() 方法將元素 abc 填入此陣列中。

var letters:Array = new Array();

letters.push("a");
letters.push("b");
letters.push("c");

trace(letters.toString()); // a,b,c

下列程式碼會建立 Array 物件 letters,此物件一開始會填入元素 a。 然後會使用 push() 方法一次,將元素 bc 加入到此陣列的結尾,也就是推入之後有三個元素。

var letters:Array = new Array("a");
var count:uint = letters.push("b", "c");

trace(letters); // a,b,c
trace(count);   // 3
reverse()方法 
AS3 function reverse():Array

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

在原地將陣列反轉。

傳回值
Array — 新的陣列。

範例

下列程式碼會建立包含元素 abc 的 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
Player 版本 : Flash Player 9

移除陣列中的第一個元素,並傳回該元素。 剩餘的陣列元素會從其原始位置 i 移到 i-1。

傳回值
* — 陣列中的第一個元素 (可以是任何資料類型)。

請參閱


範例

下列程式碼會建立包含元素 abc 的 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
Player 版本 : Flash Player 9

傳回新的陣列 (此新陣列是由原始陣列的元素範圍所組成),但是不會修改原始陣列。 傳回的陣列包含 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() 方法,然後會產生包含元素 bc 的陣列。

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,如此便產生包含元素 ef 的陣列。

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
Player 版本 : Flash Player 9

會對陣列中的每個項目執行測試函數,直到抵達傳回 true 的項目為止。 您可以使用此方法,判斷陣列中的所有項目是否符合準則,例如具有小於特定數字的值。

對於此方法而言,如果第一個參數 callback 是方法結束項,第二個參數 thisObject 就必須是 null。 假設您在影片片段中建立名為 me 的函數:

     function myFunction(obj:Object):void { //您的程式碼位置 }
     

假設您接著對名稱為 myArray 的陣列使用 some() 方法:

     myArray.some(myFunction, me);
     

由於 myFunction 是 Timeline 類別的成員,不能由 me 覆寫,Flash Player 便會擲回例外。 您可以將此函數指定給變數,以避免這項執行階段錯誤,如下所示:

     var myFunction:Function = function(obj:Object):void { //您的程式碼位置 }; 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

請參閱


範例

下列範例會顯示哪些是未定義的值:
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
Player 版本 : Flash Player 9

對陣列中的元素進行排序。 此方法會根據 Unicode 值進行排序 (ASCII 是 Unicode 的子集)。

根據預設,Array sort() 的運作方式如下所示:

若不使用預設設定來排序陣列,您可以使用 ...args 參數說明之 sortOptions 部分所描述的其中一個排序選項,或是建立自訂的函數以進行排序。 如果您建立自訂函數,您便可以在呼叫 sort() 方法時,使用自訂函數的名稱做為第一個引數 (compareFunction)。

參數

... args — 引數,用以指定比較函數及決定排序行為的一個或多個值。

這個方法會使用 Array.sort(compareFunction, sortOptions) 的語法和引數順序,其引數定義如下:

  • compareFunction - 用來決定陣列中元素排序順序的比較函數, 此為選擇性引數。 比較函數必須使用兩個引數以進行比較。 假設有 A 和 B 兩個元素,compareFunction 的結果可能有下列三個值的其中一個:
    • 如果 A 在排序序列中出現在 B 的前面,其值為 -1
    • 如果 A 等於 B,其值為 0
    • 如果 A 在排序序列中出現在 B 的後面,其值為 1
  • sortOptions - 一個或多個數字或是已定義的常數 (以 | (位元 OR) 運算子分隔),會改變預設的排序行為, 此為選擇性引數。 以下為可接受的 sortOptions 值:
    • 1 或 Array.CASEINSENSITIVE
    • 2 或 Array.DESCENDING
    • 4 或 Array.UNIQUESORT
    • 8 或 Array.RETURNINDEXEDARRAY
    • 16 或 Array.NUMERIC
    如需詳細資訊,請參閱 Array.sortOn() 方法。

傳回值
Array — 傳回的值會視您是否有傳遞任何參數而定,如下列清單中所述:
  • 如果您為 ...args 參數之 sortOptions 引數指定的值是 4 或 Array.UNIQUESORT,而且有兩個或更多的排序元素具有相同的排序欄位,Flash 便會傳回 0 的值,而且不會修改陣列。
  • 如果您為 ...args 參數之 sortOptions 引數指定的值是 8 或 Array.RETURNINDEXEDARRAY,Flash 便會傳回已排序的索引數字陣列,以反映排序的結果,而且不會修改陣列。
  • 否則,Flash 將不會傳回任何值,並會對陣列進行修改,以反映排序順序。

請參閱


範例

下列程式碼會建立包含元素 [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

下列程式碼會建立空的 Array 物件 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 引數不會實際將其它資料類型轉換成 Number 資料類型,而只會讓排序演算法辨識數字。


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
Player 版本 : Flash Player 9

根據陣列中的一個或多個欄位,對陣列中的元素進行排序。 陣列應該會具有下列特性:

若您傳遞多個 fieldName 參數,則第一個欄位代表的是主要排序欄位,第二個欄位代表的是次要排序欄位,其它依此類推。 Flash 會根據 Unicode 值進行排序 (ASCII 是 Unicode 的子集)。 如果比較的任一個元素中,都未包含 fieldName 參數中指定的欄位,會假設該欄位設定為 undefined,並且會將元素連續置於排序的陣列中 (不依照特定順序)。

根據預設,Array sortOn() 的運作方式如下所示:

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]);
  

注意: fieldNameoptions 陣列必須具有相同的元素數目,否則會忽略 options 陣列。 此外,Array.UNIQUESORTArray.RETURNINDEXEDARRAY 選項只能用來當做陣列的第一個元素,否則便會忽略這些選項。

參數

fieldName:Object — 字串,可識別要當做排序值使用的欄位,或是陣列,其中第一個元素代表主要排序欄位,第二個元素則代表次要排序欄位,其它依此類推。
 
options:Object (default = null) — 一個或多個數字或已定義的常數名稱 (以 bitwise OR (|) 運算子分隔),會變更排序行為。 下列為 options 參數可接受的值:

若您採用的是旗標的字串形式 (例如 DESCENDING) 而非數值形式 (2),則\'b5\'7b式碼提示\'a5\'5c能將會啟用。

傳回值
Array — 傳回的值會視您是否有傳遞任何參數而定:
  • 若您為 options 參數指定的值是 4 或 Array.UNIQUESORT,並且有兩個或更多的排序元素具有相同的排序欄位,則會傳回 0,而且不會修改該陣列。
  • 若您為 options 參數指定的值是 8 或 Array.RETURNINDEXEDARRAY,則會傳回反映排序結果的陣列,而且不會修改該陣列。
  • 否則,將不會傳回任何值,並會對陣列進行修改,以反映排序順序。

請參閱


範例

下列程式碼會建立空的 Array 物件 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;
    }
}

下列程式碼會建立空的 Array 物件 records,然後使用 push() 的三個呼叫來填入此陣列。 每次呼叫 push() 時,就會將 namecity 字串及 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

下列程式碼會建立空的 Array 物件 users,然後使用 push() 的四個呼叫來填入此陣列。 每次呼叫 push() 時,就會使用 User() 建構函式來建立 User 物件,並將 name 字串和 age uint 加入到使用者。 產生的陣列組會是 [Bob:3,barb:35,abcd:3,catchy:4]

然後會以下列方式排序陣列:

  1. 只依據名稱,產生陣列 [Bob:3,abcd:3,barb:35,catchy:4]
  2. 依據名稱及使用 CASEINSENSITIVE 常數,產生陣列 [abcd:3,barb:35,Bob:3,catchy:4]
  3. 依據名稱及使用 CASEINSENSITIVEDESCENDING 常數,產生陣列 [catchy:4,Bob:3,barb:35,abcd:3]
  4. 只依據年齡,產生陣列 [abcd:3,Bob:3,barb:35,catchy:4]
  5. 依據年齡及使用 NUMERIC 常數,產生陣列 [Bob:3,abcd:3,catchy:4,barb:35]
  6. 依據年齡及使用 DESCENDINGNUMERIC 常數,產生陣列 [barb:35,catchy:4,Bob:3,abcd:3]

然後會建立名為 indices 的陣列,並根據年齡及使用 NUMERICRETURNINDEXEDARRAY 常數來指定排序結果,如此會產生陣列 [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
Player 版本 : Flash Player 9

在陣列中增加和移除元素。 這個方法會修改陣列,但是不會製作副本。

注意: 若要在 Array 的子類別中覆寫此方法,請使用 ...args 做為參數,如以下範例所示:

  public override function splice(...args) { // 在此輸入您的程式碼 }
  

參數

startIndex:int — 整數,用以指定陣列中插入或刪除開始位置之元素的索引。 您可以使用負整數,指定相對於陣列結尾的位置 (例如,-1 是陣列的最後一個元素)。
 
deleteCount:uint — 整數,指定要刪除的元素數目。 這個數字會包含 startIndex 參數中所指定的元素。 如果您沒有指定 deleteCount 參數的值,此方法便會刪除此陣列中從 startIndex 元素到最後一個元素的所有值。 如果這個值為 0,則不會刪除任何元素。
 
... values — 含有一個或多個逗號分隔值的選擇性清單或是陣列,以便將其插入此陣列中 startIndex 參數所指定的位置。

傳回值
Array — 陣列,其中包含從原始陣列中移除的元素。

範例

下列程式碼會建立包含元素 [spinach, green pepper, cilantro, onion, avocado] 的 Array 物件 vegetables。 然後會使用參數 2 和 2 呼叫 splice() 方法,此方法會將 cilantroonion 指定給 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


請注意,cilantroonion 描出的形式就像 vegetables 有 5 個元素一樣,但是實際上只有四個 (第二個元素是另一個包含兩個元素的陣列)。 若要個別加入 cilantroonion,您會使用:
 
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()方法 
public function toLocaleString():String

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

會傳回字串,此字串代表指定之陣列中的元素。 陣列中的每一個元素 (從索引 0 開始,到最大的索引為止) 都會轉換成以逗號分隔的連接字串。 在 ActionScript 3.0 實作中,此方法會傳回與 Array.toString() 方法相同的值。

傳回值
String — 陣列元素的字串。

請參閱

toString()方法 
public function toString():String

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

會傳回字串,此字串代表指定之陣列中的元素。 陣列中的每一個元素 (從索引 0 開始,到最大的索引為止) 都會轉換成以逗號分隔的連接字串。 若要指定自訂的分隔符號,請使用 Array.join() 方法。

傳回值
String — 陣列元素的字串。

請參閱


範例

下列程式碼會建立 Array、將值轉換成字串,並將其儲存在 String 資料類型的 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
Player 版本 : Flash Player 9

在陣列開頭加入一個或多個元素,並傳回新的陣列長度。 陣列中的其它元素都會從其原始位置 i 移動到 i+1。

參數

... args — 要在陣列開頭插入的一個或多個數字、元素或變數。

傳回值
uint — 整數,代表陣列的新長度。

請參閱


範例

下列程式碼會建立空的 Array 物件 namesBillJeff 字串會由 push() 方法加入,而 AlfredKyle 字串會由 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
Player 版本 : Flash Player 9

會針對 Array 類別排序方法指定不區分大小寫的排序方式。 您可以將這個常數用於 sort()sortOn() 方法中的 options 參數。

此常數的值為 1。

請參閱

DESCENDING常數 
public static const DESCENDING:uint = 2

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

會針對 Array 類別排序方法指定遞減排序方式。 您可以將這個常數用於 sort()sortOn() 方法中的 options 參數。

此常數的值為 2。

請參閱

NUMERIC常數 
public static const NUMERIC:uint = 16

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

會針對 Array 類別排序方法指定數字 (而非字元字串) 排序方式。 在 options 參數中包含此常數,會使 sort()sortOn() 方法將數字排序為數值,而非數值字元的字串。 如果不使用 NUMERIC 常數,排序便會將每個陣列元素視為字元字串,並以 Unicode 順序產生結果。

例如,假設陣列的值是 [2005, 7, 35],如果在 options 參數中「沒有」包含 NUMERIC 常數,排序的陣列會是 [2005, 35, 7],不過如果「有」包含 NUMERIC 常數,排序的陣列便會是 [7, 35, 2005]

這個常數只會套用到陣列中的數字,而不會套用到包含數值資料的字串,如 ["23", "5"]

此常數的值為 16。

請參閱

RETURNINDEXEDARRAY常數 
public static const RETURNINDEXEDARRAY:uint = 8

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

會指定排序傳回由陣列索引所組成的陣列。 您可以針對 sort()sortOn() 方法中的 options 參數使用此常數,如此您就能存取陣列元素的多種檢視,同時原始陣列也不會遭到修改。

此常數的值為 8。

請參閱

UNIQUESORT常數 
public static const UNIQUESORT:uint = 4

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

會針對 Array 類別排序方法指定唯一的排序需求。 您可以將這個常數用於 sort()sortOn() 方法中的 options 參數。 如果要排序的任何兩個元素或欄位有相同的值,唯一的排序選項就會終止排序。

此常數的值為 4。

請參閱

範例 如何使用範例
ArrayExample.as

下列範例會建立一個新的 Array 物件 myArr,不含任何引數且初始長度為 0:
package {
    import flash.display.Sprite;

    public class ArrayExample extends Sprite {
        public function ArrayExample() {
            var myArr:Array = new Array();
            trace(myArr.length); // 0
        }
    }
}




 

有新的意見加入至這個頁面時,傳送電子郵件給我 | 意見報告

目前頁面: http://livedocs.adobe.com/flash/9.0_tw/ActionScriptLangRefV3/Array.html