Pakket | Hoofdniveau |
Klasse | public dynamic class Array |
Overerving | Array Object |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
[0]
is, het tweede element [1]
, enzovoort. U kunt een object Array maken met de constructor new Array()
. Array()
kan ook worden aangeroepen als functie. Daarnaast kunt u een array initialiseren of de elementen van een array openen met de operator voor arraytoegang ([]
).
U kunt verschillende gegevenstypen in een arrayelement opslaan, inclusief getallen, tekenreeksen, objecten en zelfs andere arrays. U kunt een multidimensionale array maken door een geïndexeerde array te maken en aan elk element een andere geïndexeerde array toe te wijzen. Een dergelijke array wordt multidimensionaal genoemd omdat deze kan worden gebruikt om gegevens in een tabel te vertegenwoordigen.
Arrays zijn verspreide arrays, wat betekent dat er een element bij index 0 kan zijn en een ander element op index 5, maar niets op de indexposities tussen die twee elementen. In een dergelijk geval zijn de elementen in de posities 1 tot en met 4 ongedefinieerd, wat de afwezigheid van een element aanduidt, niet noodzakelijkerwijs de aanwezigheid van een element met de waarde undefined
.
De toewijzing van arrays verloopt via verwijzingen, niet via waarden. Wanneer u een arrayvariabele aan een andere arrayvariabele toewijst, verwijzen beide naar dezelfde 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.
De klasse Array moet niet worden gebruikt om associatieve arrays te maken (ook wel hashes genoemd), omdat deze een gegevensstructuur hebben met benoemde elementen in plaats van genummerde elementen. U kunt een associatieve array maken met behulp van de klasse Object. Hoewel u met ActionScript associatieve arrays kunt maken met behulp van de klasse Array, kunt u geen methoden of eigenschappen van de klasse Array gebruiken met associatieve arrays.
U kunt de klasse Array uitbreiden en methoden negeren of toevoegen. U moet de subklasse echter opgeven als dynamic
, anders kunt u geen gegevens opslaan in een array.
Verwante API-elementen
Eigenschap | Gedefinieerd door | ||
---|---|---|---|
constructor : Object
Verwijzing naar het klasseobject of de constructorfunctie van een bepaalde objectinstantie. | Object | ||
length : uint
Een niet-negatief geheel getal dat het aantal elementen in de array opgeeft. | Array |
Methode | Gedefinieerd door | ||
---|---|---|---|
Hiermee kunt u een array maken die de opgegeven elementen bevat. | Array | ||
Hiermee kunt u een array van het opgegeven aantal elementen maken. | Array | ||
Voegt de elementen die in de parameters zijn opgegeven samen met de elementen in een array en maakt een nieuwe array. | Array | ||
Voert een testfunctie uit op elk item in de array totdat een item wordt bereikt die voor de opgegeven functie false retourneert. | Array | ||
Voert een testfunctie uit voor elk item in de array en maakt een nieuwe array voor alle items die voor de opgegeven functie true retourneren. | Array | ||
Voert een functie uit op elk item in de array. | Array | ||
Geeft aan of voor een object een opgegeven eigenschap is gedefinieerd. | Object | ||
Zoekt naar een item in een array met strikte gelijkheid (===) en retourneert de indexpositie van het item. | Array | ||
Voeg een enkel element in een array in. | Array | ||
Geeft aan of een instantie van de klasse Object zich in de prototypeketen van het object bevindt dat als parameter is opgegeven. | Object | ||
Zet de elementen in een array om in tekenreeksen, voegt het opgegeven scheidingsteken in tussen de elementen, voegt de elementen samen en retourneert de resulterende tekenreeks. | Array | ||
Zoekt naar een item in een array, vanaf het laatste item achterwaarts, en retourneert de indexpositie van het overeenkomende item met strikte gelijkheid (===). | Array | ||
Voert een functie uit op elk item in een array en maakt een nieuwe array van items die overeenkomt met de resultaten van de functie op elk item in de oorspronkelijke array. | Array | ||
Verwijdert het laatste element uit een array en retourneert de waarde van dat element. | Array | ||
Geeft aan of de opgegeven eigenschap bestaat en kan worden opgesomd. | Object | ||
Voegt een of meer elementen aan het einde van een array toe en retourneert de nieuwe lengte van de array. | Array | ||
Verwijder een enkel element uit een array. | Array | ||
Keert de volgorde van de array om. | Array | ||
Stelt de beschikbaarheid van een dynamische eigenschap voor lusbewerkingen in. | Object | ||
Verwijdert het eerste element uit een array en retourneert dat element. | Array | ||
Retourneert een nieuwe array die bestaat uit een reeks elementen van de oorspronkelijke array. De oorspronkelijke array wordt niet gewijzigd. | Array | ||
Voert een testfunctie uit op elk item in de array totdat een item wordt bereikt dat true retourneert. | Array | ||
Sorteert de elementen in een array. | Array | ||
Sorteert de elementen in een array op basis van een of meer velden in de array. | Array | ||
Voegt elementen aan een array toe en verwijdert elementen uit een array. | Array | ||
Retourneert een tekenreeks die de elementen in de opgegeven array vertegenwoordigt. | Array | ||
Retourneert een tekenreeks die de elementen in de opgegeven array vertegenwoordigt. | Array | ||
Voegt een of meer elementen aan het begin van een array toe en retourneert de nieuwe lengte van de array. | Array | ||
Retourneert de primitieve waarde van het opgegeven object. | Object |
Constante | Gedefinieerd door | ||
---|---|---|---|
CASEINSENSITIVE : uint = 1 [statisch]
Geeft niet-hoofdlettergevoelig sorteren op voor de sorteermethoden van de klasse Array. | Array | ||
DESCENDING : uint = 2 [statisch]
Geeft aflopend sorteren op voor de sorteermethoden van de klasse Array. | Array | ||
NUMERIC : uint = 16 [statisch]
Geeft numeriek sorteren (in plaats van sorteren op tekens) op voor de sorteermethoden van de klasse Array. | Array | ||
RETURNINDEXEDARRAY : uint = 8 [statisch]
Geeft op dat een sorteerhandeling een array retourneert die bestaat uit arrayindexen. | Array | ||
UNIQUESORT : uint = 4 [statisch]
Geeft de vereiste om uniek te sorteren op voor de sorteermethoden van de klasse Array. | Array |
length | eigenschap |
length:uint
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Een niet-negatief geheel getal dat het aantal elementen in de array opgeeft. Deze eigenschap wordt automatisch bijgewerkt wanneer nieuwe elementen aan de array worden toegevoegd. Wanneer u een waarde aan een arrayelement toewijst (bijvoorbeeld my_array[index] = value
) en als index
een getal is enindex+1
groter is dan de eigenschap length
, wordt de eigenschap length
bijgewerkt naarindex+1
.
Opmerking: wanneer u een waarde toewijst aan de eigenschap length
die korter is dan de bestaande lengte, wordt de array ingekort.
Implementatie
public function get length():uint
public function set length(value:uint):void
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
names
met het tekenreekselement Bill
. Vervolgens wordt de methode push()
gebruikt om een volgend tekenreekselement Kyle
toe te voegen. De grootte van de array, die wordt bepaald door de eigenschap length
, was één element voordat push()
werd gebruikt en zijn twee elementen nadat push()
is aangeroepen. De tekenreeks Jeff
wordt toegevoegd om names
de lengte van drie elementen te geven. De methode shift()
wordt nu twee keer aangeroepen om Bill
en Kyle
te verwijderen, zodat uiteindelijk een array length
overblijft.
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 | () | Constructor |
public function Array(... values)
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hiermee kunt u een array maken die de opgegeven elementen bevat. U kunt waarden van een willekeurig type opgeven. Het eerste element in een array heeft altijd een index (of positie) 0.
Opmerking: voor deze klasse worden twee constructormethoden vermeld omdat de constructor variabele typen argumenten accepteert. Het gedrag van de constructor hangt af van het type en het aantal argumenten dat wordt doorgegeven, zoals in elke vermelding wordt beschreven. ActionScript 3.0 biedt geen ondersteuning voor overbelasting van methoden of constructors.
Parameters... values — Een door komma's gescheiden lijst met een of meer willekeurige waarden.
Opmerking: wanneer alleen een enkele numerieke parameter wordt doorgegeven aan de constructor Array, wordt ervan uitgegaan dat deze de eigenschap |
Gegenereerde uitzondering
RangeError — Het argument is een getal dat geen geheel getal groter dan of gelijk aan 0 is.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
one
, two
en three
en worden de elementen vervolgens omgezet in een tekenreeks.
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 | () | Constructor |
public function Array(numElements:int = 0)
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hiermee kunt u een array van het opgegeven aantal elementen maken. Wanneer u geen parameters opgeeft, wordt een array met 0 elementen gemaakt. Wanneer u aantal elementen opgeeft, wordt een array gemaakt met numElements
elementen.
Opmerking: voor deze klasse worden twee constructormethoden vermeld omdat de constructor variabele typen argumenten accepteert. Het gedrag van de constructor hangt af van het type en het aantal argumenten dat wordt doorgegeven, zoals in elke vermelding wordt beschreven. ActionScript 3.0 biedt geen ondersteuning voor overbelasting van methoden of constructors.
ParametersnumElements:int (default = 0 ) — Een geheel getal dat het aantal elementen in de array opgeeft.
|
Gegenereerde uitzondering
RangeError — Het argument is een getal dat geen geheel getal groter dan of gelijk aan 0 is.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
myArr
, gemaakt zonder argumenten en een beginlengte van 0:
package { import flash.display.Sprite; public class Array_Array extends Sprite { public function Array_Array() { var myArr:Array = new Array(); trace(myArr.length); // 0 } } }
"one"
en wordt het tekenreekselement "six"
aan het einde van de array toegevoegd met de methode push()
:
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
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Voegt de elementen die in de parameters zijn opgegeven samen met de elementen in een array en maakt een nieuwe array. Wanneer de parameters een array opgeven, worden de elementen van die array samengevoegd. Wanneer u geen parameters doorgeeft, is de nieuwe array een duplicaat (oppervlakkige kloon) van de oorspronkelijke array.
Parameters
... args — Een waarde van een willekeurig gegevenstype (zoals getallen, elementen of tekenreeksen) die in een nieuwe array moeten worden samengevoegd.
|
Array — Een array met de elementen van die array, gevolgd door elementen van de parameters.
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
- De array
numbers
, die de getallen1
,2
en3
bevat. - De array
letters
, die de lettersa
,b
enc
bevat. - De array
numbersAndLetters
, die de methodeconcat()
aanroept om de array[1,2,3,a,b,c]
te produceren. - De array
lettersAndNumbers
, die de methodeconcat()
aanroept om de array[a,b,c,1,2,3]
te produceren.
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
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Voert een testfunctie uit op elk item in de array totdat een item wordt bereikt dat voor de opgegeven functie false
retourneert. U gebruikt deze methode om vast te stellen of alle items in een array aan een criterium voldoen, zoals het hebben van waarden onder een bepaald getal.
Voor deze methode moet de tweede parameter, thisObject
, gelijk aan null
zijn wanneer de eerste parameter, callback
, de methode afsluit. U maakt bijvoorbeeld een functie in een filmclip met de naam me
:
function myFunction(obj:Object):void { //your code here }
Vervolgens gebruikt u de methode every()
op een array met de naam myArray
:
myArray.every(myFunction, me);
Omdat myFunction
een lid van de klasse Timeline is, die niet door me
kan worden overschreven, genereert Flash-runtime een uitzondering. U kunt deze fout bij uitvoering voorkomen door de functie als volgt toe te wijzen aan een variabele:
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.every(myFunction, me);
Parameters
callback:Function — De functie die op elk item in de array moet worden uitgevoerd. Deze functie kan een eenvoudige vergelijking bevatten (bijvoorbeeld item < 20 ) of een complexere bewerking. De functie wordt aangeroepen met drie argumenten; de waarde van een item, de index van een item en het object Array:
function callback(item:*, index:int, array:Array):Boolean; | |
thisObject:* (default = null ) — Een object dat als this voor de functie moet worden gebruikt.
|
Boolean — De Booleaanse waarde true wanneer alle items in de array true retourneren voor de opgegeven functie; anders false .
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
isNumeric
true
is voor de eerste array en false
is voor de tweede array:
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
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Voert een testfunctie uit voor elk item in de array en maakt een nieuwe array voor alle items die voor de opgegeven functie true
retourneren. Items die false
retourneren, worden niet in de nieuwe array opgenomen.
Voor deze methode moet de tweede parameter, thisObject
, gelijk aan null
zijn wanneer de eerste parameter, callback
, de methode afsluit. U maakt bijvoorbeeld een functie in een filmclip met de naam me
:
function myFunction(obj:Object):void { //your code here }
Vervolgens gebruikt u de methode filter()
op een array met de naam myArray
:
myArray.filter(myFunction, me);
Omdat myFunction
een lid van de klasse Timeline is, die niet door me
kan worden overschreven, genereert Flash-runtime een uitzondering. U kunt deze fout bij uitvoering voorkomen door de functie als volgt toe te wijzen aan een variabele:
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.filter(myFunction, me);
Parameters
callback:Function — De functie die op elk item in de array moet worden uitgevoerd. Deze functie kan een eenvoudige vergelijking bevatten (bijvoorbeeld item < 20 ) of een complexere bewerking. De functie wordt aangeroepen met drie argumenten; de waarde van een item, de index van een item en het object Array:
function callback(item:*, index:int, array:Array):Boolean; | |
thisObject:* (default = null ) — Een object dat als this voor de functie moet worden gebruikt.
|
Array — Een nieuwe array met alle items van de oorspronkelijke array die true hebben geretourneerd.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
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
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Voert een functie uit op elk item in de array.
Voor deze methode moet de tweede parameter, thisObject
, gelijk aan null
zijn wanneer de eerste parameter, callback
, de methode afsluit. U maakt bijvoorbeeld een functie in een filmclip met de naam me
:
function myFunction(obj:Object):void { //your code here }
Vervolgens gebruikt u de methode forEach()
op een array met de naam myArray
:
myArray.forEach(myFunction, me);
Omdat myFunction
een lid van de klasse Timeline is, die niet door me
kan worden overschreven, genereert Flash-runtime een uitzondering. U kunt deze fout bij uitvoering voorkomen door de functie als volgt toe te wijzen aan een variabele:
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.forEach(myFunction, me);
Parameters
callback:Function — De functie die op elk item in de array moet worden uitgevoerd. Deze functie kan een eenvoudige opdracht bevatten (bijvoorbeeld een instructie trace ) of een complexere bewerking. De functie wordt aangeroepen met drie argumenten; de waarde van een item, de index van een item en het object Array:
function callback(item:*, index:int, array:Array):void; | |
thisObject:* (default = null ) — Een object dat als this voor de functie moet worden gebruikt.
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
trace()
uitgevoerd in de functie traceEmployee()
voor elk item in de array:
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()
ook uitgevoerd in een iets gewijzigde functie traceEmployee()
voor elk item in de array:
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
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zoekt naar een item in een array met strikte gelijkheid (===
) en retourneert de indexpositie van het item.
Parameters
searchElement:* — Het item dat moet worden gevonden in de array.
| |
fromIndex:int (default = 0 ) — De locatie in de array waar het zoeken naar het item moet beginnen.
|
int — De op nul gebaseerde indexpositie van het item in de array. Wanneer het argument searchElement niet wordt gevonden, is de geretourneerde waarde -1.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
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
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 19, AIR 19 |
Voeg een enkel element in een array in. Bij deze methode wordt de array gewijzigd zonder dat een kopie wordt gemaakt.
Parameters
index:int — Een geheel getal dat de positie in de array aangeeft waar het element wordt ingevoegd. U kunt een negatief geheel getal gebruiken om een positie op te geven ten opzichte van het einde van de array (bijvoorbeeld -1 is het laatste element van de array).
| |
element:* |
join | () | methode |
AS3 function join(sep:*):String
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zet de elementen in een array om in tekenreeksen, voegt het opgegeven scheidingsteken in tussen de elementen, voegt de elementen samen en retourneert de resulterende tekenreeks. Een geneste array wordt altijd gescheiden door een komma (,) en niet door het scheidingsteken dat aan de methode join()
is doorgegeven.
Parameters
sep:* (default = NaN ) — Een teken of tekenreeks voor het scheiden van arrayelementen in de geretourneerde tekenreeks. Wanneer u deze parameter weglaat, wordt een komma als standaardscheidingsteken gebruikt.
|
String — Een tekenreeks die bestaat uit de elementen van een array die is omgezet in tekenreeksen en gescheiden door de opgegeven parameter.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
myArr
, gemaakt met de elementen one
, two
en three
en vervolgens een tekenreeks met one and two and three
met behulp van de methode join()
.
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
, gemaakt met de elementen (
, )
, -
en een lege spatie en vervolgens een tekenreeks met (888) 867-5309
. Met een lus for
worden vervolgens alle opgesomde typen speciale tekens in specialChars
verwijderd en een tekenreeks (myStr
) geproduceerd met alleen nog de cijfers van het telefoonnummer: 888675309
. Andere tekens, zoals +
, zou aan specialChars
kunnen worden toegevoegd, zodat deze routine ook werkt met internationale telefoonnummers.
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
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zoekt naar een item in een array, vanaf het laatste item achterwaarts, en retourneert de indexpositie van het overeenkomende item met strikte gelijkheid (===
).
Parameters
searchElement:* — Het item dat moet worden gevonden in de array.
| |
fromIndex:int (default = 0x7fffffff ) — De locatie in de array waar het zoeken naar het item moet beginnen. De standaardwaarde is de maximumwaarde die voor een index is toegestaan. Wanneer u fromIndex niet opgeeft, begint de zoekopdracht bij het laatste item in de array.
|
int — De op nul gebaseerde indexpositie van het item in de array. Wanneer het argument searchElement niet wordt gevonden, is de geretourneerde waarde -1.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
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
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Voert een functie uit op elk item in een array en maakt een nieuwe array van items die overeenkomt met de resultaten van de functie op elk item in de oorspronkelijke array.
Voor deze methode moet de tweede parameter, thisObject
, gelijk aan null
zijn wanneer de eerste parameter, callback
, de methode afsluit. U maakt bijvoorbeeld een functie in een filmclip met de naam me
:
function myFunction(obj:Object):void { //your code here }
Vervolgens gebruikt u de methode map()
op een array met de naam myArray
:
myArray.map(myFunction, me);
Omdat myFunction
een lid van de klasse Timeline is, die niet door me
kan worden overschreven, genereert Flash-runtime een uitzondering. U kunt deze fout bij uitvoering voorkomen door de functie als volgt toe te wijzen aan een variabele:
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.map(myFunction, me);
Parameters
callback:Function — De functie die op elk item in de array moet worden uitgevoerd. Deze functie kan een eenvoudige opdracht bevatten (zoals het wijzigen van hoofdletters en kleine letters van een array met tekenreeksen) of een complexere bewerking. De functie wordt aangeroepen met drie argumenten; de waarde van een item, de index van een item en het object Array:
function callback(item:*, index:int, array:Array):String; | |
thisObject:* (default = null ) — Een object dat als this voor de functie moet worden gebruikt.
|
Array — Een nieuwe array met de resultaten van de functie voor elk item in de oorspronkelijke array.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
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():*
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Verwijdert het laatste element uit een array en retourneert de waarde van dat element.
Geretourneerde waarde* — De waarde van het laatste element (van een willekeurig gegevenstype) in de opgegeven array.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
letters
met de elementen a
, b
en c
. Het laatste element (c
) wordt vervolgens verwijderd uit de array met de methode pop()
en toegewezen aan het object 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 | () | methode |
AS3 function push(... args):uint
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Voegt een of meer elementen aan het einde van een array toe en retourneert de nieuwe lengte van de array.
Parameters
... args — Eén of meer waarden die aan de array moeten worden toegevoegd.
|
uint — Een geheel getal dat de lengte van de nieuwe array vertegenwoordigt.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
letters
, gemaakt en gevuld met de elementen a
, b
en c
met behulp van de methode push()
.
var letters:Array = new Array(); letters.push("a"); letters.push("b"); letters.push("c"); trace(letters.toString()); // a,b,c
letters
, gemaakt dat eerst wordt gevuld met het element a
. De methode push()
wordt vervolgens één keer toegepast om de elementen b
en c
toe te voegen aan het einde van de array, wat drie elementen na de push is.
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):*
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 19, AIR 19 |
Verwijder een enkel element uit een array. Bij deze methode wordt de array gewijzigd zonder dat een kopie wordt gemaakt.
Parameters
index:int — Een geheel getal dat de index van het element in de array aangeeft dat moet worden verwijderd. U kunt een negatief geheel getal gebruiken om een positie op te geven ten opzichte van het einde van de array (bijvoorbeeld -1 is het laatste element van de array).
|
* — Het element dat is verwijderd uit de oorspronkelijke array.
|
reverse | () | methode |
AS3 function reverse():Array
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Keert de volgorde van de array om.
Geretourneerde waardeArray — De nieuwe array.
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
letters
met de elementen a
, b
en c
. De volgorde van de array-elementen wordt vervolgens omgekeerd met de methode reverse()
om de array [c,b,a]
te produceren.
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():*
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Verwijdert het eerste element uit een array en retourneert dat element. De resterende array-elementen worden van hun oorspronkelijke positie verplaatst, van i naar i-1.
Geretourneerde waarde* — Het eerste element (van een willekeurig gegevenstype) in een array.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
letters
, gemaakt met de elementen a
, b
en c
. Vervolgens wordt met de methode shift()
het eerste element (a
) verwijderd uit letters
en toegewezen aan de tekenreeks firstLetter
.
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
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Retourneert een nieuwe array die bestaat uit een reeks elementen van de oorspronkelijke array. De oorspronkelijke array wordt niet gewijzigd. De geretourneerde array bevat het element startIndex
en alle elementen tot (niet tot en met) het element endIndex
.
Wanneer u geen parameters doorgeeft, is de nieuwe array een duplicaat (oppervlakkige kloon) van de oorspronkelijke array.
Parameters
startIndex:int (default = 0 ) — Een getal dat de index van het beginpunt voor het segment opgeeft. Wanneer startIndex een negatief getal is, begint het beginpunt aan het einde van de array, waarbij -1 het laatste element is.
| |
endIndex:int (default = 16777215 ) — Een getal dat de index van het eindpunt voor het segment opgeeft. Wanneer u deze parameter weglaat, bevat het segment alle elementen van het beginpunt tot het einde van de array. Wanneer endIndex een negatief getal is, wordt het eindpunt opgegeven vanaf het einde van de array, waarbij -1 het laatste element is.
|
Array — Een array die bestaat uit een reeks elementen van de oorspronkelijke array.
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
letters
met de elementen [a,b,c,d,e,f]
. De array someLetters
wordt vervolgens gemaakt door de methode slice()
aan te roepen voor de elementen één (b
) tot en met drie (d
), wat resulteert in een array met de elementen b
en 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
, gemaakt met de elementen [a,b,c,d,e,f]
. Vervolgens wordt de array someLetters
gemaakt door de methode slice()
aan te roepen voor element twee (c
), wat resulteert in een array met de 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
met de elementen [a,b,c,d,e,f]
. De array someLetters
wordt vervolgens gemaakt door de methode slice()
aan te roepen voor het op-één-na laatste element (e
), wat resulteert in een array met de elementen e
and 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
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Voert een testfunctie uit op elk item in de array totdat een item wordt bereikt dat true
retourneert. Gebruik deze methode om vast te stellen of items in een array aan een criterium voldoen, zoals het hebben van een waarde onder een bepaald getal.
Voor deze methode moet de tweede parameter, thisObject
, gelijk aan null
zijn wanneer de eerste parameter, callback
, de methode afsluit. U maakt bijvoorbeeld een functie in een filmclip met de naam me
:
function myFunction(obj:Object):void { //your code here }
Vervolgens gebruikt u de methode some()
op een array met de naam myArray
:
myArray.some(myFunction, me);
Omdat myFunction
een lid van de klasse Timeline is, die niet door me
kan worden overschreven, genereert Flash-runtime een uitzondering. U kunt deze fout bij uitvoering voorkomen door de functie als volgt toe te wijzen aan een variabele:
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.some(myFunction, me);
Parameters
callback:Function — De functie die op elk item in de array moet worden uitgevoerd. Deze functie kan een eenvoudige vergelijking bevatten (bijvoorbeeld item < 20 ) of een complexere bewerking. De functie wordt aangeroepen met drie argumenten; de waarde van een item, de index van een item en het object Array:
function callback(item:*, index:int, array:Array):Boolean; | |
thisObject:* (default = null ) — Een object dat als this voor de functie moet worden gebruikt.
|
Boolean — De Booleaanse waarde true wanneer een of meer items in de array true retourneren voor de opgegeven functie; anders false .
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
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
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Sorteert de elementen in een array. Deze methode sorteert op basis van Unicode-waarden. (ASCII is een subset van Unicode.)
Standaard werkt Array
.sort()
wordt als volgt uitgevoerd:
- Sorteren is hoofdlettergevoelig (Z komt eerder dan a).
- Sorteren verloopt oplopend (a komt eerder dan b).
- De array wordt gewijzigd op basis van de sorteervolgorde; meerdere elementen met identieke sorteervelden worden in willekeurige volgorde achter elkaar in de gesorteerde array geplaatst.
- Alle elementen, ongeacht het gegevenstype, worden als tekenreeksen gesorteerd, 100 komt bijvoorbeeld eerder dan 99, omdat '1' een lagere tekenreekswaarde is dan '9'.
Wanneer u een array wilt sorteren met instellingen die afwijken van de standaardinstellingen, kunt u een van de sorteeropties gebruiken die in het gedeelte sortOptions
van de parameterbeschrijving ...args
worden beschreven. U kunt ook uw eigen sorteerfunctie maken. Wanneer u een aangepaste functie maakt, moet u de methode sort()
aanroepen en de naam van de aangepaste functie als eerste argument gebruiken (compareFunction
).
Parameters
... args — De argumenten die een vergelijkingsfunctie opgeven en een of meer waarden die het sorteergedrag bepalen.
Deze methode gebruikt de syntaxis- en argumentvolgorde
|
Array — De geretourneerde waarde is afhankelijk van het feit of argumenten worden doorgegeven, zoals in de volgende lijst wordt beschreven:
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
vegetables
met de elementen [spinach, green pepper, cilantro, onion, avocado]
. De array wordt vervolgens gesorteerd met de methode sort()
, die zonder parameters wordt aangeroepen. Dit resulteert in een alfabetisch gesorteerde 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
vegetables
met de elementen [spinach, green pepper, Cilantro, Onion en Avocado]
. De array wordt vervolgens gesorteerd met de methode sort()
, die de eerste keer zonder parameters wordt aangeroepen. Het resultaat is [Avocado,Cilantro,Onion,green pepper,spinach]
. Nu wordt sort()
nogmaals aangeroepen voor vegetables
, maar deze keer met de constante CASEINSENSITIVE
als parameter. Dit resulteert in een alfabetisch gesorteerde vegetables
([Avocado, Cilantro, green pepper, Onion, spinach]
).
var vegetables:Array = new Array("spinach", "green pepper", "Cilantro", "Onion", "Avocado"); vegetables.sort(); trace(vegetables); // Avocado,Cilantro,Onion,green pepper,spinach vegetables.sort(Array.CASEINSENSITIVE); trace(vegetables); // Avocado,Cilantro,green pepper,Onion,spinach
vegetables
, dat wordt gevuld door middel van vijf aanroepen van push()
. Elke keer dat push()
wordt aangeroepen, wordt een nieuw object Vegetable
gemaakt via een aanroep van de constructor Vegetable()
, die een String-object (name
) en Number-object (price
) accepteert. Wanneer push()
vijf maal met de getoonde waarden wordt aangeroepen, levert dit de volgende array op: [lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44]
. De methode sort()
wordt vervolgens gebruikt om de array te sorteren, wat resulteert in [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()
en daarnaast een aangepaste sorteerfunctie (sortOnPrice
) gebruikt. Deze functie sorteert op prijs en niet op alfabet. De nieuwe functie getPrice()
extraheert de prijs.
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
met de elementen [3,5,100,34,10]
. Wanneer u sort()
zonder enige parameter aanroept, sorteert deze alfabetisch. Dit leidt tot het ongewenste resultaat [10,100,3,34,5]
. Wanneer u de numerieke waarden op juiste wijze wilt sorteren, moet u de constante NUMERIC
doorgeven aan de methode sort()
, die numbers
als volgt sorteert: [3,5,10,34,100]
.
Opmerking: de functie sort()
behandelt elke entiteit standaard als een tekenreeks. Als u het argument Array.NUMERIC
gebruikt, probeert de Flash-runtime niet-numerieke waarden om te zetten naar gehele getallen voor sorteerdoeleinden. Als dit mislukt, geeft de runtime een fout weer. De runtime kan bijvoorbeeld een String-waarde van "6"
omzetten naar een geheel getal, maar er zal een fout optreden als een String-waarde van "zes"
wordt weergegeven.
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
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Sorteert de elementen in een array op basis van een of meer velden in de array. De array moet de volgende kenmerken hebben:
- De array is een geïndexeerde array, geen associatieve array.
- Elk element van de array bevat een object met een of meer eigenschappen.
- Alle objecten hebben minstens één gemeenschappelijke eigenschap, waarvan de waarden kunnen worden gebruikt om de array te sorteren. Een dergelijke eigenschap wordt een veld genoemd.
Wanneer u meerdere parameters fieldName
doorgeeft, is het eerste veld het primaire sorteerveld, het tweede veld het volgende sorteerveld, enzovoort. In Flash wordt op basis van Unicode-waarden gesorteerd. (ASCII is een subset van Unicode.) Wanneer een van de elementen die worden vergeleken niet het veld bevat dat in de parameter fieldName
is opgegeven, wordt ervan uitgegaan dat het veld ongedefinieerd
is en worden de elementen in willekeurige volgorde achter elkaar in de gesorteerde array geplaatst.
Standaard werkt Array
.sortOn()
wordt als volgt uitgevoerd:
- Sorteren is hoofdlettergevoelig (Z komt eerder dan a).
- Sorteren verloopt oplopend (a komt eerder dan b).
- De array wordt gewijzigd op basis van de sorteervolgorde; meerdere elementen met identieke sorteervelden worden in willekeurige volgorde achter elkaar in de gesorteerde array geplaatst.
- Numerieke velden worden als tekenreeksen gesorteerd, 100 komt bijvoorbeeld eerder dan 99, omdat '1' een lagere tekenreekswaarde is dan '9'.
In Flash Player 7 is de parameter options
toegevoegd die u kunt gebruiken om het standaardsorteergedrag te negeren. Wanneer u een eenvoudige array wilt sorteren (bijvoorbeeld een array met slechts één veld) of wanneer u een sorteervolgorde wilt opgeven die niet door de parameter options
wordt ondersteund, moet u Array.sort()
gebruiken.
U kunt meerdere markeringen doorgeven door ze te scheiden met de bitsgewijze operator OR (|
):
my_array.sortOn(someFieldName, Array.DESCENDING | Array.NUMERIC);
In Flash Player 8 hebt u de mogelijkheid een andere sorteeroptie voor elk veld op te geven wanneer u op meer dan één veld sorteert. In Flash Player 8 en hoger accepteert de parameter options
een array van sorteeropties zodanig dat elke sorteeroptie overeenkomt met een sorteerveld in de parameter fieldName
. In het volgende voorbeeld wordt het primaire sorteerveld a
in aflopende volgorde gesorteerd, het secundaire sorteerveld b
in numerieke volgorde en het tertiaire sorteerveld c
in niet-hoofdlettergevoelige volgorde:
Array.sortOn (["a", "b", "c"], [Array.DESCENDING, Array.NUMERIC, Array.CASEINSENSITIVE]);
Opmerking: de arraysfieldName
en options
moeten hetzelfde aantal elementen bevatten, anders wordt de array options
genegeerd. De opties Array.UNIQUESORT
en Array.RETURNINDEXEDARRAY
kunnen alleen als het eerste element in de array worden gebruikt, anders worden ze genegeerd.
Parameters
fieldName:Object — Een tekenreeks die een veld identificeert dat moet worden gebruikt als de sorteerwaarde, of een array waarin het eerste element het primaire sorteerveld vertegenwoordigt, het tweede het secundaire sorteerveld, enzovoort.
| |
options:Object (default = null ) — Een of meer getallen of namen van gedefinieerde constanten, gescheiden door de operator (|) (bitsgewijze OR), die het sorteergedrag wijzigen. De volgende waarden zijn acceptabel voor de parameter options :
Codehints worden ingeschakeld wanneer u de tekenreeksvorm van de markering gebruikt (bijvoorbeeld |
Array — De geretourneerde waarde is afhankelijk van het feit of u parameters doorgeeft:
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
vegetables
, dat vervolgens wordt gevuld door vijf aanroepen uit te voeren van push()
. Elke keer dat push()
wordt aangeroepen, wordt een nieuw object Vegetable
gemaakt via een aanroep van de constructor Vegetable()
, die een String-object (name
) en Number-object (price
) accepteert. Wanneer push()
vijf maal met de getoonde waarden wordt aangeroepen, levert dit de volgende array op: [lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44]
. De methode sortOn()
wordt vervolgens in combinatie met de parameter name
gebruikt om de volgende array te produceren: [asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44]
. De methode sortOn()
wordt vervolgens nogmaals aangeroepen met de parameter price waarna de constanten NUMERIC en DESCENDING een array moeten produceren die in aflopende volgorde op getallen is gesorteerd: [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.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
, dat vervolgens wordt gevuld door drie aanroepen uit te voeren van push()
. Elke keer dat push()
wordt aangeroepen, worden de tekenreeksen name
en city
en een getal zip
toegevoegd aan records
. Er worden drie lussen for
gebruikt om de arrayelementen af te drukken. De eerste lus for
drukt de elementen af in de volgorde waarop ze zijn toegevoegd. De tweede lus for
wordt uitgevoerd nadat records
op naam en vervolgens stad is gesorteerd via de methode sortOn()
. De derde lus for
produceert een verschillend resultaat omdat records
eerst op stad en vervolgens op naam wordt gesorteerd.
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
, dat vervolgens wordt gevuld door vier aanroepen uit te voeren van push()
. Elke keer dat push()
wordt aangeroepen, wordt een object User gemaakt met de constructor User()
en wordt de tekenreeks name
en uint age
toegevoegd aan users. De resulterende array-set is [Bob:3,barb:35,abcd:3,catchy:4]
.
De array wordt hierna op de volgende manieren gesorteerd:
- Alleen op naam, met als resultaat de array
[Bob:3,abcd:3,barb:35,catchy:4]
- Alleen op naam en met gebruik van de constante
CASEINSENSITIVE
, met als resultaat de array[abcd:3,barb:35,Bob:3,catchy:4]
- Op naam en met gebruik van de constante
CASEINSENSITIVE
enDESCENDING
, met als resultaat de array[catchy:4,Bob:3,barb:35,abcd:3]
- Alleen op leeftijd, met als resultaat de array
[abcd:3,Bob:3,barb:35,catchy:4]
- Op leeftijd en met gebruik van de constante
NUMERIC
, met als resultaat de array[Bob:3,abcd:3,catchy:4,barb:35]
- Op leeftijd en met gebruik van de constante
DESCENDING
enNUMERIC
, met als resultaat de array[barb:35,catchy:4,Bob:3,abcd:3]
Er wordt een array met de naam indices
gemaakt die de resultaten van het sorteren op leeftijd krijgt toegewezen. Deze array maakt gebruik van de constanten NUMERIC
en RETURNINDEXEDARRAY
, dat resulteert in de array [Bob:3,abcd:3,catchy:4,barb:35]
, die wordt afgedrukt met gebruik van de lus 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 | () | methode |
AS3 function splice(startIndex:int, deleteCount:uint, ... values):Array
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Voegt elementen aan een array toe en verwijdert elementen uit een array. Bij deze methode wordt de array gewijzigd zonder dat een kopie wordt gemaakt.
Opmerking: wanneer u deze methode in een subklasse van Array wilt negeren, gebruikt u...args
voor de parameters, zoals getoond in dit voorbeeld:
public override function splice(...args) { // your statements here }
Parameters
startIndex:int — Een geheel getal dat de index van het element in de array opgeeft waar het invoegen of verwijderen begint. U kunt een negatief geheel getal gebruiken om een positie op te geven ten opzichte van het einde van de array (bijvoorbeeld -1 is het laatste element van de array).
| |
deleteCount:uint — Een geheel getal dat het aantal elementen opgeeft dat moet worden verwijderd. Dit getal bevat het element dat in de parameter startIndex wordt opgegeven. Wanneer geen waarde is opgegeven voor de parameter deleteCount , verwijdert deze methode alle waarden uit het element startIndex tot het laatste element in de array. Wanneer de waarde 0 is, worden geen elementen verwijderd.
| |
... values — Een optionele lijst met een of meer door komma's gescheiden waarden die in de array moet worden ingevoegd op het punt dat is opgegeven in de parameter beginIndex . Als een ingevoegde waarde het type Array heeft, blijft de array intact en wordt deze als één element ingevoegd. Als u bijvoorbeeld een bestaande array met lengte drie verbindt met een andere array met lengte drie, zal de resulterende array slechts vier elementen hebben. Een van de elementen zal echter een array met lengte drie zijn.
|
Array — Een array met elementen die uit de oorspronkelijke array zijn verwijderd.
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
vegetables
met de elementen [spinach, green pepper, cilantro, onion, avocado]
. De methode splice()
wordt vervolgens aangeroepen met de parameters 2 en 2, die cilantro
en onion
aan de array spliced
toewijst. De array vegetables
bevat nu [spinach,green pepper,avocado]
. De methode splice()
wordt nogmaals aangeroepen met de parameters 1 en 0 en de array spliced
wijst [cilantro,onion]
als tweede element in vegetables
aan.
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
en onion
verkeerd worden getraceerd en dat wordt aangegeven dat vegetables
5 elementen bevat, terwijl deze er slechts 4 bevat (en het tweede element is een array met twee elementen). Voeg cilantro
en onion
als volgt individueel toe:
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
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Retourneert een tekenreeks die de elementen in de opgegeven array vertegenwoordigt. Elk element in de array, beginnend met index 0 en eindigend met de hoogste index, wordt omgezet in een samengevoegde tekenreeks en wordt gescheiden door komma's. In de ActionScript 3.0-implementatie retourneert deze methode dezelfde waarde als de methode Array.toString()
.
String — Een tekenreeks met arrayelementen.
|
Verwante API-elementen
toString | () | methode |
public function toString():String
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Retourneert een tekenreeks die de elementen in de opgegeven array vertegenwoordigt. Elk element in de array, beginnend met index 0 en eindigend met de hoogste index, wordt omgezet in een samengevoegde tekenreeks en wordt gescheiden door komma's. Gebruik de methode Array.join()
om een aangepast scheidingsteken op te geven.
String — Een tekenreeks met arrayelementen.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
vegnums
met het gegevenstype String.
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
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Voegt een of meer elementen aan het begin van een array toe en retourneert de nieuwe lengte van de array. De overige elementen in de array worden van de oorspronkelijke positie i verplaatst naar i+1.
Parameters
... args — Een of meer getallen, elementen of variabelen die aan het begin van de array moeten worden ingevoegd.
|
uint — Een geheel getal dat de nieuwe lengte van de array vertegenwoordigt.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
names
. De tekenreeksen Bill
en Jeff
worden via de methode push()
toegevoegd, waarna de tekenreeksen Alfred
en Kyle
aan het begin van names
worden toegevoegd door twee aanroepen uit te voeren van de methode unshift()
.
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 | Constante |
public static const CASEINSENSITIVE:uint = 1
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Geeft niet-hoofdlettergevoelig sorteren op voor de sorteermethoden van de klasse Array. U kunt deze constante voor de parameter options
in de methode sort()
of sortOn()
gebruiken.
De waarde van deze constante is 1.
Verwante API-elementen
DESCENDING | Constante |
public static const DESCENDING:uint = 2
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Geeft aflopend sorteren op voor de sorteermethoden van de klasse Array. U kunt deze constante voor de parameter options
in de methode sort()
of sortOn()
gebruiken.
De waarde van deze constante is 2.
Verwante API-elementen
NUMERIC | Constante |
public static const NUMERIC:uint = 16
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Geeft numeriek sorteren (in plaats van sorteren op tekens) op voor de sorteermethoden van de klasse Array. Wanneer u deze constante in de parameter options
opneemt, sorteren de methoden sort()
en sortOn()
getallen als numerieke waarden, niet als tekenreeksen van numerieke tekens. Zonder de constante NUMERIC
wordt elk arrayelement als een tekenreeks gesorteerd en worden de resultaten in Unicode-volgorde geproduceerd.
Wanneer voorbeeld wordt de array van waarden [2005, 7, 35]
genomen. Wanneer de constante NUMERIC
niet is opgenomen in de parameter options
, wordt de gesorteerde array [2005, 35, 7]
, maar als de constante NUMERIC
wel is opgenomen, wordt de gesorteerde array [7, 35, 2005]
.
Deze constante is alleen van toepassing op getallen in de array, niet op tekenreeksen die numerieke gegevens bevatten zoals ['23', '5']
.
De waarde van deze constante is 16.
Verwante API-elementen
RETURNINDEXEDARRAY | Constante |
public static const RETURNINDEXEDARRAY:uint = 8
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Geeft op dat een sorteerhandeling een array retourneert die bestaat uit arrayindexen. U kunt deze constante gebruiken voor de parameter options
in de methode sort()
of sortOn()
, zodat u toegang hebt tot meerdere weergaven van de arrayelementen terwijl de oorspronkelijke array ongewijzigd blijft.
De waarde van deze constante is 8.
Verwante API-elementen
UNIQUESORT | Constante |
public static const UNIQUESORT:uint = 4
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Geeft de vereiste om uniek te sorteren op voor de sorteermethoden van de klasse Array. U kunt deze constante voor de parameter options
in de methode sort()
of sortOn()
gebruiken. De unieke sorteeroptie breekt het sorteren af wanneer twee elementen of velden die worden gesorteerd, identieke waarden hebben.
De waarde van deze constante is 4.
Verwante API-elementen
myArr
, gemaakt zonder argumenten en een beginlengte van 0:
package { import flash.display.Sprite; public class ArrayExample extends Sprite { public function ArrayExample() { var myArr:Array = new Array(); trace(myArr.length); // 0 } } }
Wed Jun 13 2018, 11:42 AM Z