Paket | Oberste Ebene |
Klasse | public dynamic class Array |
Vererbung | Array Object |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
[0]
, das zweite Element [1]
usw. Verwenden Sie zum Erstellen eines Array-Objekts den Konstruktor new Array()
. Array()
kann auch als Funktion aufgerufen werden. Zudem können Sie den Array-Zugriffsoperator ([]
) verwenden, um ein Array zu initialisieren oder auf die Elemente eines Arrays zuzugreifen.
Sie können viele unterschiedliche Datentypen in einem Arrayelement speichern, z. B. Zahlen, Strings, Objekte und auch andere Arrays. Außerdem haben Sie die Möglichkeit, ein mehrdimensionales Array zu erstellen, indem Sie ein indiziertes Array anlegen und jedem seiner Elemente ein weiteres indiziertes Array zuweisen. Diese Arrays werden als mehrdimensional bezeichnet, da sie zur Darstellung von Daten in einer Tabelle verwendet werden können.
Arrays sind karge Arrays, d. h., sie weisen unter Umständen ein Element auf Indexposition 0 und ein weiteres auf Position 5 auf, dazwischen jedoch keine Elemente. In diesem Fall sind die Elemente in Position 1 bis 4 nicht definiert, wodurch das Fehlen eines Elements angezeigt wird, nicht unbedingt das Vorhandensein eines Elements mit dem Wert undefined
.
Die Zuweisung von Arrays erfolgt nicht mithilfe von Werten, sondern über Verweise. Wenn Sie eine Array-Variable einer anderen zuweisen, verweisen beide Variablen auf das gleiche Array:
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.
Allerdings sollten Sie mithilfe der Array-Klasse keine assoziativen Arrays (auch als hashes bezeichnet) erstellen, bei denen es sich um Datenstrukturen mit bezeichneten statt numerierten Elementen handelt. Um assoziative Arrays zu erstellen, verwenden Sie die Object-Klasse. ActionScript ermöglicht zwar auch das Erstellen assoziativer Arrays mithilfe der Array-Klasse, Sie können dann jedoch keine der Methoden oder Eigenschaften der Array-Klasse verwenden.
Sie können die Array-Klasse erweitern und Methoden überschreiben oder hinzufügen. Allerdings müssen Sie die Unterklasse als dynamic
angeben, da Sie sonst die Fähigkeit, Daten in einem Array zu speichern, verlieren.
Verwandte API-Elemente
Eigenschaft | Definiert von | ||
---|---|---|---|
constructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz. | Object | ||
length : uint
Eine nicht negative Ganzzahl, die die Anzahl von Elementen im Array angibt. | Array |
Methode | Definiert von | ||
---|---|---|---|
Ermöglicht das Erstellen eines Arrays mit der angegebenen Anzahl an Elementen. | Array | ||
Ermöglicht das Erstellen eines Arrays mit der angegebenen Anzahl an Elementen. | Array | ||
Verkettet die in den Parametern angegebenen Elemente mit den Elementen in einem Array und erstellt ein neues Array. | Array | ||
Führt für jedes Element im Array eine Testfunktion aus, bis ein Element erreicht wird, das für die angegebene Funktion „false“ zurückgibt. | Array | ||
Führt für jedes Element im Array eine Testfunktion aus und erstellt ein neues Array für alle Elemente, die für die angegebene Funktion „true“ zurückgeben. | Array | ||
Führt für jedes Element im Array eine Funktion aus. | Array | ||
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde. | Object | ||
Sucht nach einem Element in einem Array unter Verwendung strikter Gleichheit (===), und gibt die Indexposition des Elements zurück. | Array | ||
Fügen Sie ein einzelnes Element in ein Array ein. | Array | ||
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | ||
Wandelt die Elemente in einem Array in Strings um, fügt zwischen ihnen das angegebene Trennzeichen ein, verkettet die Elemente und gibt den resultierenden String zurück. | Array | ||
Sucht rückwärts, vom letzten Element aus, nach einem Element in einem Array und gibt die Indexposition des Elements zurück, das unter Verwendung des strikten Gleichheitsoperators (===) übereinstimmt. | Array | ||
Führt für jedes Element in einem Array eine Funktion aus, und erstellt ein neues Array mit Elementen, die den Ergebnissen der Funktion entsprechen. | Array | ||
Entfernt das letzte Element aus einem Array und gibt den Wert dieses Elements zurück. | Array | ||
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | ||
Fügt am Ende eines Arrays ein oder mehrere Elemente hinzu und gibt die neue Länge des Arrays zurück. | Array | ||
Entfernen Sie ein einzelnes Element aus einem Array. | Array | ||
Kehrt die Reihenfolge der Arrayelemente im Array um. | Array | ||
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | ||
Entfernt das erste Element aus einem Array und gibt dieses Element zurück. | Array | ||
Gibt ein neues Array zurück, das aus mehreren Elementen des ursprünglichen Arrays besteht, ohne das ursprüngliche Array dabei zu ändern. | Array | ||
Führt für jedes Element im Array eine Testfunktion aus, bis ein Element erreicht wird, das „true“ zurückgibt. | Array | ||
Sortiert die Elemente in einem Array. | Array | ||
Sortiert die Elemente in einem Array nach mindestens einem Feld im Array. | Array | ||
Fügt einem Array Elemente hinzu bzw. entfernt diese. | Array | ||
Gibt einen String zurück, der die Elemente im angegebenen Array repräsentiert. | Array | ||
Gibt einen String zurück, der die Elemente im angegebenen Array repräsentiert. | Array | ||
Fügt am Anfang eines Arrays ein oder mehrere Elemente hinzu und gibt die neue Länge des Arrays zurück. | Array | ||
Gibt den Grundwert des angegebenen Objekts zurück. | Object |
Konstante | Definiert von | ||
---|---|---|---|
CASEINSENSITIVE : uint = 1 [statisch]
Legt als Sortiermethode für die Array-Klasse eine Sortierung ohne Beachtung der Groß- und Kleinschreibung fest. | Array | ||
DESCENDING : uint = 2 [statisch]
Legt als Sortiermethode für die Array-Klasse eine absteigende Sortierreihenfolge fest. | Array | ||
NUMERIC : uint = 16 [statisch]
Legt als Sortiermethode für die Array-Klasse eine numerische (statt einer stringbasierten) Sortierreihenfolge fest. | Array | ||
RETURNINDEXEDARRAY : uint = 8 [statisch]
Legt fest, dass eine Sortierung ein Array zurückgibt, der aus Arrayindizes besteht. | Array | ||
UNIQUESORT : uint = 4 [statisch]
Legt als Sortiermethode für die Array-Klasse eine eindeutige Sortierreihenfolge fest. | Array |
length | Eigenschaft |
length:uint
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Eine nicht negative Ganzzahl, die die Anzahl von Elementen im Array angibt. Diese Eigenschaft wird automatisch aktualisiert, wenn dem Array neue Elemente hinzugefügt werden. Sobald Sie einem Arrayelement einen Wert zuweisen (z. B. my_array[index] = value
) und wenn index
eine Zahl und index+1
größer als die length
-Eigenschaft ist, wird die length
-Eigenschaft auf index+1
aktualisiert.
Hinweis: Wenn Sie der length
-Eigenschaft einen Wert zuweisen, der kleiner ist als die tatsächliche Länge des Arrays, wird das Array abgeschnitten.
Implementierung
public function get length():uint
public function set length(value:uint):void
Beispiel ( Verwendung dieses Beispiels )
names
mit dem Element Bill
erstellt. Anschließend wird mithilfe der push()
-Methode das String-Element Kyle
hinzugefügt. Die Länge des Arrays, die durch die length
-Eigenschaft bestimmt wird, betrug ein Element bevor f push()
angewendet wurde; nach dem Aufrufen von push()
beträgt sie zwei Elemente. Ein weiterer String, Jeff
, wird hinzugefügt, damit names
eine Länge von drei Elementen hat. Anschließend wird die shift()
-Methode zweimal aufgerufen, um Bill
und Kyle
zu entfernen. Abschließend hat length
eine Länge von eins.
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 | () | Konstruktor |
public function Array(... values)
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Ermöglicht das Erstellen eines Arrays mit der angegebenen Anzahl an Elementen. Sie können Werte beliebigen Typs angeben. Das erste Element in einem Array hat immer die Indexposition 0.
Hinweis: Diese Klasse zeigt zwei Konstruktoreinträge, da der Konstruktor Argumente verschiedenen Typs akzeptiert. Der Konstruktor verhält sich unterschiedlich, je nach Typ und Anzahl der übergebenen Argumente, wie sie in den einzelnen Einträgen beschrieben sind. Überladene Methoden oder Konstruktoren werden von ActionSript 3.0 nicht unterstützt.
Parameter... values — Eine Liste mit mindestens zwei beliebigen Werten.
Hinweis: Wenn an den Array-Konstruktor nur ein einziger numerischer Parameter übergeben wird, wird davon ausgegangen, dass er die |
Auslöser
RangeError — Das Argument ist eine Zahl, die keine Ganzzahl größer oder gleich 0 ist.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
one
, two
und three
gefüllt und anschließend werden die Elemente in einen String umgewandelt.
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 | () | Konstruktor |
public function Array(numElements:int = 0)
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Ermöglicht das Erstellen eines Arrays mit der angegebenen Anzahl an Elementen. Wenn Sie keine Parameter angeben, wird ein Array erstellt, der 0 Elemente enthält. Wenn Sie eine bestimmte Anzahl an Elementen angeben, wird ein Array mit numElements
Elementen erstellt.
Hinweis: Diese Klasse zeigt zwei Konstruktormethodeneinträge, da der Konstruktor Argumente verschiedenen Typs akzeptiert. Der Konstruktor verhält sich unterschiedlich, je nach Typ und Anzahl der übergebenen Argumente, wie sie in den einzelnen Einträgen beschrieben sind. Überladene Methoden oder Konstruktoren werden von ActionSript 3.0 nicht unterstützt.
ParameternumElements:int (default = 0 ) — Eine Ganzzahl, die die Anzahl von Elementen im Array angibt.
|
Auslöser
RangeError — Das Argument ist eine Zahl, die keine Ganzzahl größer oder gleich 0 ist.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
myArr
mit der Ausgangslänge 0 erstellt:
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"
gefüllt und fügt das Stringelement "six"
am Ende des Arrays mithilfe der push()
-Methode hinzu:
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 | () | Methode |
AS3 function concat(... args):Array
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Verkettet die in den Parametern angegebenen Elemente mit den Elementen in einem Array und erstellt ein neues Array. Wenn die Parameter ein Array angeben, werden die Elemente dieses Arrays verkettet. Wenn Sie keine Parameter übergeben, wird das neue Array als Duplikat („Shallow Clone“) des ursprünglichen Arrays erstellt.
Parameter
... args — Ein Wert beliebigen Datentyps (wie etwa Zahlen, Elemente oder Strings) der in einem neuen Array verkettet werden soll.
|
Array — Ein Array mit den Elementen dieses Arrays und den Elementen aus den Parametern.
|
Beispiel ( Verwendung dieses Beispiels )
- Das
numbers
-Array, das die Zahlen1
,2
und3
enthält. - Das
letters
-Array, das die Buchstabena
,b
undc
enthält. - Das
numbersAndLetters
-Array, das dieconcat()
-Methode aufruft, um das Array[1,2,3,a,b,c]
zu erstellen. - Das
lettersAndNumbers
-Array, das dieconcat()
-Methode aufruft, um das Array[a,b,c,1,2,3]
zu erstellen.
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 | () | Methode |
AS3 function every(callback:Function, thisObject:* = null):Boolean
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Führt für jedes Element im Array eine Testfunktion aus, bis ein Element erreicht wird, das für die angegebene Funktion false
zurückgibt. Sie verwenden diese Methode, um zu ermitteln, ob alle Elemente in einem Array ein Kriterium erfüllen, z. B. dass die Werte unter einer bestimmten Zahl liegen.
Für diese Methode muss der zweite Parameter (thisObject
) den Wert null
haben, wenn der erste Parameter (callback
) ein Methodenabschluss ist. Angenommen, Sie erstellen eine Funktion in einem Movieclip mit dem Namen me
:
function myFunction(obj:Object):void { //your code here }
Nehmen Sie weiter an, Sie wenden dann die every()
-Methode auf ein Array mit dem Namen myArray
an:
myArray.every(myFunction, me);
Da myFunction
ein Mitglied der Timeline-Klasse ist, die von me
nicht überschrieben werden kann, löst die Flash-Laufzeitumgebung eine Ausnahme aus. Sie können diesen Laufzeitfehler vermeiden, indem Sie die Funktion wie folgt einer Variable zuweisen:
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.every(myFunction, me);
Parameter
callback:Function — Die Funktion, die für jedes Element im Array ausgeführt werden soll. Diese Funktion kann einen einfachen Vergleich enthalten (z. B. item < 20 ) oder eine komplexere Operation und wird mit drei Argumenten aufgerufen, nämlich dem Wert eines Elements, der Indexposition eines Elements und einem Array-Objekt:
function callback(item:*, index:int, array:Array):Boolean; | |
thisObject:* (default = null ) — Ein Objekt, das als this -Wert für die Funktion verwendet wird.
|
Boolean — Der boolesche Wert true , wenn alle Elemente im Array für die Funktion true zurückgeben; andernfalls false .
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
isNumeric
ist true
für das erste Array und false
für das zweite:
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 | () | Methode |
AS3 function filter(callback:Function, thisObject:* = null):Array
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Führt für jedes Element im Array eine Testfunktion aus und erstellt ein neues Array für alle Elemente, die für die angegebene Funktion true
zurückgeben. Gibt ein Element false
zurück, wird es nicht in den neuen Array aufgenommen.
Für diese Methode muss der zweite Parameter (thisObject
) den Wert null
haben, wenn der erste Parameter (callback
) ein Methodenabschluss ist. Angenommen, Sie erstellen eine Funktion in einem Movieclip mit dem Namen me
:
function myFunction(obj:Object):void { //your code here }
Nehmen Sie weiter an, Sie wenden dann die filter()
-Methode auf ein Array mit dem Namen myArray
an:
myArray.filter(myFunction, me);
Da myFunction
ein Mitglied der Timeline-Klasse ist, die von me
nicht überschrieben werden kann, löst die Flash-Laufzeitumgebung eine Ausnahme aus. Sie können diesen Laufzeitfehler vermeiden, indem Sie die Funktion wie folgt einer Variable zuweisen:
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.filter(myFunction, me);
Parameter
callback:Function — Die Funktion, die für jedes Element im Array ausgeführt werden soll. Diese Funktion kann einen einfachen Vergleich enthalten (z. B. item < 20 ) oder eine komplexere Operation und wird mit drei Argumenten aufgerufen, nämlich dem Wert eines Elements, der Indexposition eines Elements und einem Array-Objekt:
function callback(item:*, index:int, array:Array):Boolean; | |
thisObject:* (default = null ) — Ein Objekt, das als this -Wert für die Funktion verwendet wird.
|
Array — Ein neues Array, das alle Elemente des ursprünglichen Arrays enthält, die den Wert true zurückgegeben haben.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
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 | () | Methode |
AS3 function forEach(callback:Function, thisObject:* = null):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Führt für jedes Element im Array eine Funktion aus.
Für diese Methode muss der zweite Parameter (thisObject
) den Wert null
haben, wenn der erste Parameter (callback
) ein Methodenabschluss ist. Angenommen, Sie erstellen eine Funktion in einem Movieclip mit dem Namen me
:
function myFunction(obj:Object):void { //your code here }
Nehmen Sie weiter an, Sie wenden dann die forEach()
-Methode auf ein Array mit dem Namen myArray
an:
myArray.forEach(myFunction, me);
Da myFunction
ein Mitglied der Timeline-Klasse ist, die von me
nicht überschrieben werden kann, löst die Flash-Laufzeitumgebung eine Ausnahme aus. Sie können diesen Laufzeitfehler vermeiden, indem Sie die Funktion wie folgt einer Variable zuweisen:
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.forEach(myFunction, me);
Parameter
callback:Function — Die Funktion, die für jedes Element im Array ausgeführt werden soll. Diese Funktion kann einen einfachen Befehl enthalten (z. B. trace() ) oder eine komplexere Operation und wird mit drei Argumenten aufgerufen, nämlich dem Wert eines Elements, der Indexposition eines Elements und einem Array-Objekt:
function callback(item:*, index:int, array:Array):void; | |
thisObject:* (default = null ) — Ein Objekt, das als this -Wert für die Funktion verwendet wird.
|
Beispiel ( Verwendung dieses Beispiels )
trace()
-Anweisung in der traceEmployee()
-Funktion für jedes Element im Array ausgeführt:
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 + ")"); } } }
trace()
-Anweisung in einer leicht abgewandelten traceEmployee()
-Funktion für jedes Element im Array ausgeführt:
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 | () | Methode |
AS3 function indexOf(searchElement:*, fromIndex:int = 0):int
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Sucht nach einem Element in einem Array unter Verwendung strikter Gleichheit (===
), und gibt die Indexposition des Elements zurück.
Parameter
searchElement:* — Das Element, das im Array gesucht werden soll.
| |
fromIndex:int (default = 0 ) — Die Position im Array, ab der die Suche nach dem Element gestartet werden soll.
|
int — Eine auf Null basierende Indexposition des Elements im Array. Wird das searchElement -Argument nicht gefunden, lautet der Rückgabewert -1.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
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 | () | Methode |
AS3 function insertAt(index:int, element:*):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 19, AIR 19 |
Fügen Sie ein einzelnes Element in ein Array ein. Bei dieser Methode werden Änderungen am Array vorgenommen, ohne eine Kopie zu erstellen.
Parameter
index:int — Eine Ganzzahl, die die Position im Array angibt, an der das Element eingefügt werden soll. Sie können hier negative Ganzzahlen verwenden, um eine Position am Ende des Arrays anzugeben (so ist -1 das letzte Element des Arrays).
| |
element:* |
join | () | Methode |
AS3 function join(sep:*):String
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wandelt die Elemente in einem Array in Strings um, fügt zwischen ihnen das angegebene Trennzeichen ein, verkettet die Elemente und gibt den resultierenden String zurück. Ein verschachteltes Array wird immer durch ein Komma getrennt und nicht durch das Trennzeichen, das an die join()
-Methode übergeben wurde.
Parameter
sep:* (default = NaN ) — Ein Zeichen oder String, mit dem die Arrayelemente im zurückgegebenen String voneinander getrennt werden. Wenn Sie diesen Parameter weglassen, wird als Standardtrennzeichen das Komma verwendet.
|
String — Ein String, der aus den Elementen eines Arrays besteht, die in Strings umgewandelt und durch den angegebenen Parameter getrennt werden sollen.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
myArr
mit den Elementen one
, two
und three
erstellt. Anschließend wird ein String, der one and two and three
enthält, mithilfe der join()
-Methode erstellt.
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
specialChars
mit den Elementen (
, )
, -
und einer Leerstelle erstellt. Anschließend wird ein String erstellt, der (888) 867-5309
enthält. Dann werden mithilfe einer for
-Schleife alle in specialChars
aufgelisteten Sonderzeichentypen entfernt, um einen String (myStr
) zu erstellen, der nur die Zahlen der verbleibenden Telefonnummer enthält: 888675309
. Beachten Sie, dass möglicherweise andere Zeichen, wie etwa +
, zu specialChars
hinzugefügt wurden. Diese Routine würde dann mit internationalen Telefonnummerformaten funktionieren.
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 | () | Methode |
AS3 function lastIndexOf(searchElement:*, fromIndex:int = 0x7fffffff):int
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Sucht rückwärts, vom letzten Element aus, nach einem Element in einem Array und gibt die Indexposition des Elements zurück, das unter Verwendung des strikten Gleichheitsoperators (===
) übereinstimmt.
Parameter
searchElement:* — Das Element, das im Array gesucht werden soll.
| |
fromIndex:int (default = 0x7fffffff ) — Die Position im Array, ab der die Suche nach dem Element gestartet werden soll. Standard ist der maximale für eine Indexposition erlaubte Wert. Wenn Sie fromIndex nicht angeben, beginnt die Suche bei dem letzten Element im Array.
|
int — Eine auf Null basierende Indexposition des Elements im Array. Wird das searchElement -Argument nicht gefunden, lautet der Rückgabewert -1.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
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 | () | Methode |
AS3 function map(callback:Function, thisObject:* = null):Array
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Führt für jedes Element in einem Array eine Funktion aus, und erstellt ein neues Array mit Elementen, die den Ergebnissen der Funktion entsprechen.
Für diese Methode muss der zweite Parameter (thisObject
) den Wert null
haben, wenn der erste Parameter (callback
) ein Methodenabschluss ist. Angenommen, Sie erstellen eine Funktion in einem Movieclip mit dem Namen me
:
function myFunction(obj:Object):void { //your code here }
Nehmen Sie weiter an, Sie wenden dann die map()
-Methode auf ein Array mit dem Namen myArray
an:
myArray.map(myFunction, me);
Da myFunction
ein Mitglied der Timeline-Klasse ist, die von me
nicht überschrieben werden kann, löst die Flash-Laufzeitumgebung eine Ausnahme aus. Sie können diesen Laufzeitfehler vermeiden, indem Sie die Funktion wie folgt einer Variable zuweisen:
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.map(myFunction, me);
Parameter
callback:Function — Die Funktion, die für jedes Element im Array ausgeführt werden soll. Diese Funktion kann einen einfachen Befehl enthalten (z. B. die Groß-/Kleinschreibung in einem Array an Strings umschalten) oder eine komplexere Operation und wird mit drei Argumenten aufgerufen, nämlich dem Wert eines Elements, der Indexposition eines Elements und einem Array-Objekt:
function callback(item:*, index:int, array:Array):String; | |
thisObject:* (default = null ) — Ein Objekt, das als this -Wert für die Funktion verwendet wird.
|
Array — Ein neues Array, das die Ergebnisse der Funktion enthält, die für jedes Element im ursprünglichen Array ausgeführt wurde.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
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 | () | Methode |
AS3 function pop():*
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Entfernt das letzte Element aus einem Array und gibt den Wert dieses Elements zurück.
Rückgabewerte* — Der Wert des letzten Elements (beliebigen Typs) im angegebenen Array.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
letters
mit den Elementen a
, b
und c
erstellt. Der letzte Element (c
) wird dann mithilfe der pop()
-Methode aus dem Array entfernt und dem String-Objekt letter
zugewiesen.
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 | () | Methode |
AS3 function push(... args):uint
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Fügt am Ende eines Arrays ein oder mehrere Elemente hinzu und gibt die neue Länge des Arrays zurück.
Parameter
... args — Ein oder mehrere Werte, die an das Array angehängt werden.
|
uint — Eine Ganzzahl, die die Länge des neuen Arrays angibt.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
letters
erstellt und mit den Elementen a
, b
und c
mithilfe der push()
-Methode gefüllt.
var letters:Array = new Array(); letters.push("a"); letters.push("b"); letters.push("c"); trace(letters.toString()); // a,b,c
letters
erstellt, das zunächst mit dem Element a
gefüllt wird. Dann werden durch einmaliges Anwenden der push()
-Methode die Elemente b
und c
am Ende des Arrays hinzugefügt, d. h. drei Elemente nach dem „push“.
var letters:Array = new Array("a"); var count:uint = letters.push("b", "c"); trace(letters); // a,b,c trace(count); // 3
removeAt | () | Methode |
AS3 function removeAt(index:int):*
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 19, AIR 19 |
Entfernen Sie ein einzelnes Element aus einem Array. Bei dieser Methode werden Änderungen am Array vorgenommen, ohne eine Kopie zu erstellen.
Parameter
index:int — Eine Ganzzahl, die den Index des Array-Elements angibt, das gelöscht werden soll. Sie können hier negative Ganzzahlen verwenden, um eine Position am Ende des Arrays anzugeben (so ist -1 das letzte Element des Arrays).
|
* — Das Element, das aus dem ursprünglichen Array gelöscht wurde.
|
reverse | () | Methode |
AS3 function reverse():Array
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Kehrt die Reihenfolge der Arrayelemente im Array um.
RückgabewerteArray — Das neue Array.
|
Beispiel ( Verwendung dieses Beispiels )
letters
mit den Elementen a
, b
und c
erstellt. Anschließend wird die Reihenfolge der Arrayelemente mithilfe der reverse()
-Methode umgekehrt, um das Array [c,b,a]
zu erstellen.
var letters:Array = new Array("a", "b", "c"); trace(letters); // a,b,c letters.reverse(); trace(letters); // c,b,a
shift | () | Methode |
AS3 function shift():*
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Entfernt das erste Element aus einem Array und gibt dieses Element zurück. Die verbleibenden Arrayelemente werden von ihrer ursprünglichen Position, i, nach i-1 verschoben.
Rückgabewerte* — Das erste Element (beliebigen Datentyps) in einem Array.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
letters
mit den Elementen a
, b
und c
erstellt. Dann wird mithilfe der shift()
-Methode das erste Elemente (a
) aus letters
entfernt und dem String firstLetter
zugewiesen.
var letters:Array = new Array("a", "b", "c"); var firstLetter:String = letters.shift(); trace(letters); // b,c trace(firstLetter); // a
slice | () | Methode |
AS3 function slice(startIndex:int = 0, endIndex:int = 16777215):Array
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Gibt ein neues Array zurück, das aus mehreren Elementen des ursprünglichen Arrays besteht, ohne das ursprüngliche Array dabei zu ändern. Das zurückgegebene Array umfasst das Element startIndex
und alle Elemente bis (ausschließlich) zum Element endIndex
.
Wenn Sie keine Parameter übergeben, wird das neue Array als Duplikat („Shallow Clone“) des ursprünglichen Arrays erstellt.
Parameter
startIndex:int (default = 0 ) — Eine Zahl, die die Indexposition des Segmentanfangs angibt. Wenn startIndex eine negative Zahl ist, liegt der Ausgangspunkt am Ende des Arrays, wobei -1 das letzte Element ist.
| |
endIndex:int (default = 16777215 ) — Eine Zahl, die die Indexposition des Segmentendes angibt. Wenn Sie diesen Parameter weglassen, umfasst das Segment alle Elemente vom Anfang bis zum Ende des Arrays. Wenn endIndex eine negative Zahl ist, wird der Endpunkt vom Ende des Arrays aus berechnet, wobei -1 das letzte Element ist.
|
Array — Ein Array, das aus mehreren Elementen des ursprünglichen Arrays besteht.
|
Beispiel ( Verwendung dieses Beispiels )
letters
mit den Elementen [a,b,c,d,e,f]
erstellt. Anschließend wird das Array someLetters
erstellt, und zwar durch den Aufruf der Methode slice()
für die Elemente 1 (b
) bis 3 (d
). Dadurch entsteht ein Array mit den Elementen b
und 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
letters
mit den Elementen [a,b,c,d,e,f]
erstellt. Anschließend wird das Array someLetters
erstellt, und zwar durch den Aufruf der Methode slice()
für das Elemente 2 (c
). Dadurch entsteht ein Array mit den Elementen [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
letters
mit den Elementen [a,b,c,d,e,f]
erstellt. Anschließend wird das Array someLetters
erstellt, und zwar durch den Aufruf der Methode slice()
für das vorletzte Element (e
). Dadurch entsteht ein Array mit den Elementen e
und 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 | () | Methode |
AS3 function some(callback:Function, thisObject:* = null):Boolean
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Führt für jedes Element im Array eine Testfunktion aus, bis ein Element erreicht wird, das true
zurückgibt. Verwenden Sie diese Methode, um festzustellen, ob alle Elemente in einem Array ein Kriterium erfüllen, z. B. dass die Werte unter einer bestimmten Zahl liegen.
Für diese Methode muss der zweite Parameter (thisObject
) den Wert null
haben, wenn der erste Parameter (callback
) ein Methodenabschluss ist. Angenommen, Sie erstellen eine Funktion in einem Movieclip mit dem Namen me
:
function myFunction(obj:Object):void { //your code here }
Nehmen Sie weiter an, Sie wenden dann die some()
-Methode auf ein Array mit dem Namen myArray
an:
myArray.some(myFunction, me);
Da myFunction
ein Mitglied der Timeline-Klasse ist, die von me
nicht überschrieben werden kann, löst die Flash-Laufzeitumgebung eine Ausnahme aus. Sie können diesen Laufzeitfehler vermeiden, indem Sie die Funktion wie folgt einer Variable zuweisen:
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.some(myFunction, me);
Parameter
callback:Function — Die Funktion, die für jedes Element im Array ausgeführt werden soll. Diese Funktion kann einen einfachen Vergleich enthalten (z. B. item < 20 ) oder eine komplexere Operation und wird mit drei Argumenten aufgerufen, nämlich dem Wert eines Elements, der Indexposition eines Elements und einem Array-Objekt:
function callback(item:*, index:int, array:Array):Boolean; | |
thisObject:* (default = null ) — Ein Objekt, das als this -Wert für die Funktion verwendet wird.
|
Boolean — Der boolesche Wert true , wenn ein Element im Array für die angegebene Funktion true zurückgibt; andernfalls false .
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
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 | () | Methode |
AS3 function sort(... args):Array
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Sortiert die Elemente in einem Array. Diese Methode sortiert nach Unicode-Werten. (ASCII ist eine Untergruppe von Unicode.)
In der Standardeinstellung funktioniert Array
.sort()
wie folgt:
- Bei der Sortierung wird Groß-/Kleinschreibung beachtet (Z kommt vor a).
- Die Sortierung erfolgt aufsteigend (a kommt vor b).
- Das Array wird entsprechend der Sortierreihenfolge geändert. Elemente mit identischen Sortierfeldern werden im sortierten Array ohne bestimmte Reihenfolge nacheinander platziert.
- Alle Elemente werden, unabhängig von ihrem Datentyp, so sortiert, als seien sie Strings. 100 kommt demnach vor 99, da „1“ ein kleinerer Stringwert ist als „9“.
Um ein Array in einer von den Standardeinstellungen abweichenden Reihenfolge zu sortieren, können Sie entweder eine der im Abschnitt sortOptions
des ...args
-Parameters beschriebenen Sortierreihenfolgen verwenden oder eine eigene benutzerdefinierte Funktion für die Sortierung erstellen. Wenn Sie eine benutzerdefinierte Funktion erstellen möchten, rufen Sie die sort()
-Methode auf und verwenden den Namen der benutzerdefinierten Funktion als erstes Argument (compareFunction
).
Parameter
... args — Die Argumente, die eine Vergleichsfunktion angeben, sowie mindestens ein Wert, der das Verhalten der Sortierung bestimmt.
Diese Methode verwendet die Syntax und Argumentreihenfolge
|
Array — Der Rückgabewert hängt, wie in der folgenden Liste beschrieben, davon ab, ob Sie Argumente übergeben:
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
vegetables
mit den Elementen [spinach, green pepper, cilantro, onion, avocado]
erstellt. Anschließend wird das Array mithilfe der sort()
-Methode, die ohne Parameter aufgerufen wird, sortiert. Das Ergebnis ist vegetables
sortiert in alphabetischer Reihenfolge ([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
vegetables
mit den Elementen [spinach, green pepper, Cilantro, Onion, and Avocado]
erstellt. Anschließend wird das Array mithilfe der sort()
-Methode, die beim ersten Mal ohne Parameter aufgerufen wird, sortiert. Das Ergenis ist [Avocado,Cilantro,Onion,green pepper,spinach]
. Anschließend wird sort()
erneut für vegetables
aufgerufen, wobei die Konstante CASEINSENSITIVE
als ein Parameter verwendet wird. Das Ergebnis ist vegetables
sortiert in alphabetischer Reihenfolge ([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
erstellt, das dann durch fünf Aufrufe von push()
gefüllt wird. Mit jedem Aufrufen von push()
wird ein neues Vegetable
-Objekt durch einen Aufruf des Vegetable()
-Konstruktors erstellt, der ein String- (name
) und ein Number- (price
)-Objekt akzeptiert. Durch das fünfmalige Aufrufen von push()
mit den gezeigten Werten ergibt sich das folgende Array: [lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44]
. Dann wird das Array mithilfe der sort()
-Methode sortiert, und es ergibt das Array [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()
-Methode zusammen mit einer benutzerdefinierten Sortierfunktion (sortOnPrice
) ausgeführt wird, d. h. das Array wird nicht in alphabetischer Reihenfolge sondern anhand des Preises sortiert. Beachten Sie, dass die neue Funktion getPrice()
den Preis extrahiert.
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; } }
numbers
mit den Elementen [3,5,100,34,10]
erstellt. Durch das Aufrufen von sort()
ohne Parameter wird das Array in alphabetischer Reihenfolge sortiert; es ergibt das unerwünschte Ergebnis [10,100,3,34,5]
. Um numerische Werte richtig zu sortieren, müssen Sie die NUMERIC
-Konstante an die sort()
-Methode übergeben, mit der numbers
wie folgt sortiert wird: [3,5,10,34,100]
.
Hinweis: Das Standardverhalten der Funktion sort()
besteht darin, jede Einheit als String zu behandeln. Wenn Sie das Array.NUMERIC
-Argument verwenden, versucht die Flash-Laufzeitumgebung, nicht numerische Werte zu Sortierungszwecken in Ganzzahlen zu konvertieren. Schlägt dies fehl, gibt die Laufzeit einen Fehler aus. Die Laufzeitumgebung kann zum Beispiel den Stringwert "6"
in eine Ganzzahl konvertieren, gibt jedoch einen Fehler aus, wenn ein Stringwert von "six"
auftritt.
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 | () | Methode |
AS3 function sortOn(fieldName:Object, options:Object = null):Array
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Sortiert die Elemente in einem Array nach mindestens einem Feld im Array. Das Array muss folgende Merkmale aufweisen:
- Es handelt sich um ein indiziertes und kein assoziatives Array.
- Jedes Element des Arrays enthält ein Objekt mit mindestens einer Eigenschaft.
- Sämtliche Objekte haben mindestens eine Eigenschaft gemeinsam, anhand deren Werte die Objekte im Array sortiert werden können. Eine solche Eigenschaft wird als field bezeichnet.
Wenn Sie mehrere fieldName
-Parameter übergeben, stellt das erste Feld das primäre Sortierfeld dar, das zweite Feld das nächste Sortierfeld usw. Flash sortiert nach Unicode-Werten. (ASCII ist eine Untergruppe von Unicode.) Wenn eines der zu vergleichenden Elemente das im fieldName
-Parameter angegebene Feld nicht enthält, wird davon ausgegangen, dass das Feld auf undefined
gesetzt wurde, und die Elemente werden im sortierten Array ohne bestimmte Reihenfolge nacheinander platziert.
In der Standardeinstellung funktioniert Array
.sortOn()
wie folgt:
- Bei der Sortierung wird Groß-/Kleinschreibung beachtet (Z kommt vor a).
- Die Sortierung erfolgt aufsteigend (a kommt vor b).
- Das Array wird entsprechend der Sortierreihenfolge geändert. Elemente mit identischen Sortierfeldern werden im sortierten Array ohne bestimmte Reihenfolge nacheinander platziert.
- Numerische Felder werden so sortiert, als seien sie Strings. 100 kommt demnach vor 99, da „1“ ein kleinerer Stringwert ist als „9“.
Flash Player 7 umfasst den options
-Parameter, mit dem Sie das Standardverhalten der Sortierung außer Kraft setzen können. Wenn Sie ein einfaches Array (z. B. ein Array mit nur einem Feld) sortieren oder eine nicht vom options
-Parameter unterstützte Sortierreihenfolge festlegen möchten, verwenden Sie Array.sort()
.
Wenn Sie mehrere Flags übergeben möchten, trennen Sie diese mithilfe des bitweisen OR-Operators (|
):
my_array.sortOn(someFieldName, Array.DESCENDING | Array.NUMERIC);
In Flash Player 8 haben Sie die Möglichkeit, bei einer Sortierung nach mehreren Feldern für jedes Feld eine andere Sortieroption anzugeben. In Flash Player 8 kann für den options
-Parameter ein Array mit Sortieroptionen angegeben werden, bei dem jede Sortieroption einem Sortierfeld im fieldName
-Parameter entspricht. Im folgenden Beispiel wird nach dem primären Sortierfeld a
in absteigender Reihenfolge, dann nach dem sekundären Sortierfeld b
anhand einer numerischen Sortierung und schließlich nach dem Sortierfeld c
mit einer Sortierung ohne Beachtung der Groß-/Kleinschreibung sortiert.
Array.sortOn (["a", "b", "c"], [Array.DESCENDING, Array.NUMERIC, Array.CASEINSENSITIVE]);
Hinweis: Die Arrays fieldName
und options
müssen die gleiche Anzahl von Elementen aufweisen. Andernfalls wird das Array options
ignoriert. Außerdem können die Optionen Array.UNIQUESORT
und Array.RETURNINDEXEDARRAY
nur als erstes Element im Array verwendet werden, da sie ansonsten ignoriert werden.
Parameter
fieldName:Object — Ein String, der ein Feld mit einem Sortierwert definiert bzw. ein Array, in dem das erste Element das primäre Sortierfeld, das zweite Element das sekundäre Sortierfeld darstellt usw.
| |
options:Object (default = null ) — Durch den Operator bitwise OR (|) voneinander getrennte Zahlen oder Namen definierter Konstanten, die das Verhalten der Sortierung ändern. Folgende Werte sind für den options -Parameter zulässig:
Codehinweise sind aktiviert, wenn Sie die Stringform des Parameters (z. B. |
Array — Der Rückgabewert hängt davon ab, ob Sie Parameter übergeben:
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
vegetables
erstellt, das dann durch fünf Aufrufe von push()
gefüllt wird. Mit jedem Aufrufen von push()
wird ein neues Vegetable
-Objekt durch einen Aufruf des Vegetable()
-Konstruktors erstellt, der ein String- (name
) und ein Number- (price
)-Objekt akzeptiert. Durch das fünfmalige Aufrufen von push()
mit den gezeigten Werten ergibt sich das folgende Array: [lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44]
. Anschließend wird die sortOn()
-Methode zusammen mit dem name
-Parameter angewendet, um das folgende Array zu erstellen: [asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44]
. Daraufhin wird die sortOn()
-Methode erneut zusammen mit dem price-Parameter und den Konstanten NUMERIC und DESCENDING aufgerufen, um ein nach Zahlen in absteigender Reihenfolge sortiertes Array zu erstellen: [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
erstellt, das dann durch drei Aufrufe von push()
gefüllt wird. Mit jedem Aufrufen von push()
werden die Strings name
und city
sowie eine zip
-Zahl zu records
hinzugefügt. Die Arrayelemente werden mit drei for
-Schleifen gedruckt. Mit der ersten for
-Schleife werden die Elemente in der Reihenfolge gedruckt, in der sie hinzugefügt wurden. Die zweite for
-Schleife wird ausgeführt, nachdem records
zuerst anhand des Namens und dann der Stadt mithilfe der sortOn()
-Methode sortiert wurde. Mit der dritten for
-Schleife wird records
zuerst anhand der Stadt und dann anhand des Namens sortiert.
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
erstellt, das dann durch vier Aufrufe von push()
gefüllt wird. Mit jedem Aufrufen von push()
wird ein User-Objekt mit dem User()
-Konstruktor erstellt und den Benutzern wird ein name
-String sowie eine age
-uint hinzugefügt. Das sich daraus ergebende Array ist [Bob:3,barb:35,abcd:3,catchy:4]
.
Anschließend wird das Array folgendermaßen sortiert:
- Anhand des Namens ergibt sich
[Bob:3,abcd:3,barb:35,catchy:4]
. - Anhand des Namens zusammen mit der Konstante
CASEINSENSITIVE
ergibt sich[abcd:3,barb:35,Bob:3,catchy:4]
. - Anhand des Namens zusammen mit den Konstanten
CASEINSENSITIVE
undDESCENDING
ergibt sich[catchy:4,Bob:3,barb:35,abcd:3]
. - Anhand des Alters ergibt sich
[abcd:3,Bob:3,barb:35,catchy:4]
. - Anhand des Alters zusammen mit der Konstante
NUMERIC
ergibt sich[Bob:3,abcd:3,catchy:4,barb:35]
. - Anhand des Alters zusammen mit den Konstanten
DESCENDING
undNUMERIC
ergibt sich[barb:35,catchy:4,Bob:3,abcd:3]
.
Anschließend wird ein Array mit dem Namen indices
erstellt, dem die Ergebnisse einer Sortierung anhand des Alters zusammen mit den Konstanten NUMERIC
und RETURNINDEXEDARRAY
zugewiesen werden. Daraus ergibt sich das Array [Bob:3,abcd:3,catchy:4,barb:35]
, das mithilfe einer for
-Schleife gedruckt wird.
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 | () | Methode |
AS3 function splice(startIndex:int, deleteCount:uint, ... values):Array
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Fügt einem Array Elemente hinzu bzw. entfernt diese. Bei dieser Methode werden Änderungen am Array vorgenommen, ohne eine Kopie zu erstellen.
Hinweis: Um diese Methode in einer Unterklasse von Array zu überschreiben, verwenden Sie, wie im folgenden Beispiel gezeigt, ...args
für die Parameter:
public override function splice(...args) { // your statements here }
Parameter
startIndex:int — Eine Ganzzahl, die die Indexposition des Arrayelements angibt, an der der Einfüge- oder Löschvorgang beginnt. Sie können hier negative Ganzzahlen verwenden, um eine Position am Ende des Arrays anzugeben (so ist -1 das letzte Element des Arrays).
| |
deleteCount:uint — Eine Ganzzahl, die die Anzahl der zu löschenden Elemente angibt. Diese Zahl schließt das im startIndex -Parameter angegebene Element ein. Wenn kein Wert für deleteCount angegeben ist, löscht die Methode alle Werte von startIndex bis zum letzten Arrayelement. Wenn der Wert 0 lautet, werden keine Elemente gelöscht.
| |
... values — Eine optionale Liste mit mindestens zwei durch Kommas getrennten Werten, die an der durch den Parameter startIndex angegebenen Position in das Array einzufügen sind. Wenn ein eingefügter Wert den Typ „Array“ aufweist, wird das Array intakt gehalten und als einzelnes Element eingefügt. Wenn Sie zum Beispiel ein vorhandenes Array mit der Länge 3 mit einem anderen Array mit der Länge 3 verbinden, hat das resultierende Array nur vier Elemente. Eines dieser Elemente ist ein Array mit der Länge 3.
|
Array — Ein Array, das die aus dem ursprünglichen Array entfernten Elemente enthält.
|
Beispiel ( Verwendung dieses Beispiels )
vegetables
mit den Elementen [spinach, green pepper, cilantro, onion, avocado]
erstellt. Anschließend wird die splice()
-Methode mit den Parametern 2 und 2 aufgerufen. Dadurch werden cilantro
und onion
dem spliced
-Array hinzugefügt. Das vegetables
-Array enthält daraufhin [spinach,green pepper,avocado]
. Die splice()
-Methode wird ein zweites Mal mit den Parametern 1 und 0 sowie dem spliced
-Array aufgerufen, um [cilantro,onion]
als zweites Element von vegetables
zuzuweisen.
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
und onion
wiedergegeben werden, als ob vegetables
5 Elemente enthielte, obwohl es nur vier sind (wobei es sich beim zweiten Element um ein anderes Array mit zwei Elementen handelt). Sie können cilantro
und onion
einzeln hinzufügen, und zwar mithilfe von:
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 | () | Methode |
public function toLocaleString():String
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Gibt einen String zurück, der die Elemente im angegebenen Array repräsentiert. Alle Arrayelemente von Indexposition 0 bis zur höchsten Indexposition werden in einen verketteten, durch Kommas getrennten String umgewandelt. In der ActionScript 3.0-Implementierung gibt diese Methode denselben Wert wie die Array.toString()
-Methode zurück.
String — Ein String mit Arrayelementen.
|
Verwandte API-Elemente
toString | () | Methode |
public function toString():String
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Gibt einen String zurück, der die Elemente im angegebenen Array repräsentiert. Alle Arrayelemente von Indexposition 0 bis zur höchsten Indexposition werden in einen verketteten, durch Kommas getrennten String umgewandelt. Verwenden Sie die Array.join()
-Methode, um ein benutzerdefiniertes Trennzeichen anzugeben.
String — Ein String mit Arrayelementen.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
vegnums
-Variable vom Datentyp String gespeichert.
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 | () | Methode |
AS3 function unshift(... args):uint
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Fügt am Anfang eines Arrays ein oder mehrere Elemente hinzu und gibt die neue Länge des Arrays zurück. Die anderen Elemente im Array werden von ihrer ursprünglichen Position, i, nach i+1 verschoben.
Parameter
... args — Eine oder mehrere Zahlen, Elemente oder Variablen, die am Anfang des Arrays eingefügt werden sollen.
|
uint — Eine Ganzzahl, die die neue Länge des Arrays repräsentiert.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
names
erstellt. Die Strings Bill
und Jeff
werden mithilfe der push()
-Methode hinzugefügt. Anschließend werden die Strings Alfred
und Kyle
am Anfang von names
durch zwei Aufrufe der unshift()
-Methode eingefügt.
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 | Konstante |
public static const CASEINSENSITIVE:uint = 1
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Legt als Sortiermethode für die Array-Klasse eine Sortierung ohne Beachtung der Groß- und Kleinschreibung fest. Sie können diese Konstante als Wert für den options
-Parameter in der Methode sort()
oder sortOn()
verwenden.
Diese Konstante hat den Wert 1.
Verwandte API-Elemente
DESCENDING | Konstante |
public static const DESCENDING:uint = 2
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Legt als Sortiermethode für die Array-Klasse eine absteigende Sortierreihenfolge fest. Sie können diese Konstante als Wert für den options
-Parameter in der Methode sort()
oder sortOn()
verwenden.
Diese Konstante hat den Wert 2.
Verwandte API-Elemente
NUMERIC | Konstante |
public static const NUMERIC:uint = 16
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Legt als Sortiermethode für die Array-Klasse eine numerische (statt einer stringbasierten) Sortierreihenfolge fest. Wenn Sie diese Konstante dem options
-Parameter hinzufügen, sortieren die sort()
- und sortOn()
-Methoden Zahlen als numerische Werte und nicht als Strings numerischer Zeichen. Ohne die Konstante NUMERIC
werden bei der Sortierung alle Arrayelemente wie Strings behandelt, und die Ergebnisse werden in der Unicode-Reihenfolge dargestellt.
Wenn beispielsweise bei einem Array der Werte [2005, 7, 35]
die Konstante NUMERIC
not dem options
-Parameter hinzugefügt ist, lautet das sortierte Array [2005, 35, 7]
. Wurde die Konstante NUMERIC
jedoch is, lautet das sortierte Array [7, 35, 2005]
.
Diese Konstante gilt nur für Zahlen im Array. Sie gilt jedoch nicht für Strings mit numerischen Daten wie ["23", "5"]
.
Diese Konstante hat den Wert 16.
Verwandte API-Elemente
RETURNINDEXEDARRAY | Konstante |
public static const RETURNINDEXEDARRAY:uint = 8
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Legt fest, dass eine Sortierung ein Array zurückgibt, der aus Arrayindizes besteht. Diese Konstante können Sie für den Parameter options
in den Methoden sort()
oder sortOn()
verwenden, sodass Sie Zugriff auf mehrere Ansichten zu Arrayelementen haben, während das Originalarray unverändert bleibt.
Diese Konstante hat den Wert 8.
Verwandte API-Elemente
UNIQUESORT | Konstante |
public static const UNIQUESORT:uint = 4
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Legt als Sortiermethode für die Array-Klasse eine eindeutige Sortierreihenfolge fest. Sie können diese Konstante als Wert für den options
-Parameter in der Methode sort()
oder sortOn()
verwenden. Bei der eindeutigen Sortierung wird der Vorgang beendet, sobald zwei beliebige zu sortierende Elemente bzw. Felder den gleichen Wert enthalten.
Diese Konstante hat den Wert 4.
Verwandte API-Elemente
myArr
-Objekt mit der Ausgangslänge 0 erstellt:
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, 10:04 AM Z