Array提供了多種方法插入和刪除元素。通過這些方法,可以快速按需要操作Array中的元素。Array類提供了一對方法push和pop方法,使得Array類實現了棧的結構。push方法可以將元素插入到Array的尾部。pop方法刪除Array最尾部的元素。這樣就實現了一個先進後出的棧結構。實現代碼如下所示。
var flexArray:Array=new Array();
flexArray.push(“Adobe”); //添加元素“Adobe”到Array的尾部
trace(flexArray); //輸出“Adobe”
flexArray.push(“Macromedia”); //添加元素“Macromedia”到Array的尾部
trace(flexArray); //輸出“Adobe,Macromeida”
flexArray.push(“Flex”); //添加元素“Flex”到Array的尾部
trace(flexArray); //輸出“Adobe,Macromeida,Flex”
flexArray.pop(); //刪除Array尾部元素
trace(flexArray); //輸出“Adobe,Macromeida”
flexArray.pop(); //刪除Array尾部元素
trace(flexArray); //輸出“Adobe”
flexArray.pop(); //刪除Array尾部元素
trace(flexArray); //輸出“”
由上面的代碼可以看出,通過push和pop方法可以用一個Array類的一個實例構建一個棧的數據結構。通過這樣的數據結構,可以實現更爲複雜的算法。
Array類也提供了一組shift和unshift的方法向Array的實例添加元素和刪除元素。與push與pop不同,unshift添加方式是在Array實例的頭部添加元素。而shift方法是從Array類實例的頭部開始刪除元素。如下代碼所示。
var flexArray:Array=new Array();
flexArray. unshift (“Adobe”); //添加元素“Adobe”到Array的頭部
trace(flexArray); //輸出“Adobe”
flexArray. unshift (“Macromedia”); //添加元素“Macromedia”到Array的頭部
trace(flexArray); //輸出“Macromeida, Adobe”
flexArray. unshift (“Flex”); //添加元素“Flex”到Array的頭部
trace(flexArray); //輸出“Flex, Macromeida, Adobe”
flexArray. shift (); //刪除Array頭部元素
trace(flexArray); //輸出“Macromeida, Adobe”
flexArray. shift (); //刪除Array頭部元素
trace(flexArray); //輸出“Adobe”
flexArray. shift (); //刪除Array頭部元素
trace(flexArray); //輸出“”
除了上面提到的這幾種順序的插入和刪除Array元素的方法外,Array類還提供了一個方法splice用來通過指定位置添加或者刪除元素。splice方法使用的方式如下代碼所示。
var flexArray:Array=[“Adobe”,”Flex”];
flexArray.splice(1,0,”Maromedia”); //刪除從索引位置1開始的0個元素,添加”Maromedia”到實例中
trace(flexArray); //輸出“Adobe,Macromeida,Flex”
flexArray.splice(1,1); //刪除從索引位置1開始的1個元素
trace(flexArray); //輸出“Adobe,Flex”
flexArray.splice(1,1,”Flex3”); //刪除從索引位置1開始的1個元素,添加” Flex3”到實例中
trace(flexArray); //輸出“Adobe,Flex3”
splice方法有兩個整型參數。第一個整型參數用來指定操作元素的索引位置。第二個整型參數指定刪除元素的個數,如果爲0那麼是不刪除元素的。如果存在第三個參數,則表示進行完刪除後插入的元素。這樣通過splice就可以一次完成指定位置先刪除後插入的替換操作。
在使用Array類實例的過程中可以通過delete關鍵字進行刪除操作。通過delete關鍵字進行刪除時不改變Array的長度。訪問被刪除元素返回undefined類型。使用方法如下所示。
var flexArray:Array=[“Adobe”,”Macromedia”,”Flex”];
delete(flexArray[1]); //刪除索引位置爲1的元素
trace(flexArray); //輸出““Adobe,,Flex””
trace(flexArray[1]); //輸出“undefined”
trace(flexArray.length); //輸出3
減小Array實例的長度定義也會刪除新長度定義之外的元素。如下代碼所示。
var flexArray=[“Adobe”,”Macromedia”,”Flex”];
flexArray.length=2; //改變Array長度的定義
trace(flexArray); //輸出“Adobe,Macromedia”