Pakiet | Najwyższy poziom |
Klasa | public dynamic class Array |
Dziedziczenie | Array Object |
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
[0]
, drugi — wartość [1]
itd. Obiekt Array można utworzyć za pomocą konstruktora new Array()
. Obiekt Array()
można wywołać również jako funkcję. Ponadto za pomocą operatora dostępu tablicy ([]
) można inicjować tablicę lub uzyskać dostęp do jej elementów.
Elementy tablicy mogą stanowić szeroką gamę typów danych, w tym liczby, ciągi znaków, obiekty, a nawet inne tablice. Tablicę wielowymiarową można wygenerować poprzez utworzenie tablicy indeksowanej i przypisanie każdemu z jej elementów innej tablicy indeksowanej. Taka tablica jest tablicą wielowymiarową, ponieważ za jej pośrednictwem dane są reprezentowane w tabeli.
Istnieją również tablice rzadkie, co oznacza, że jeśli zawierają element np. o indeksie 0, a następny o indeksie 5, to między nimi nie ma elementów o indeksie pośrednim. W takim przypadku elementy o indeksach od 1 do 4 pozostają niezdefiniowane, co oznacza brak elementu, a nie koniecznie obecność elementu o wartości undefined
.
Przypisanie tablicy odbywa się poprzez odwołanie, a nie poprzez wartość. Przypisanie jednej zmiennej tablicowej do drugiej zmiennej tablicowej spowoduje odwołanie do tej samej tablicy:
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.
Klasy Array nie należy używać do tworzenia tablic skojarzeniowych, zwanych również z ang. hash, zbudowanych w formie struktury danych, w których elementy są rozpoznawane wg nazwy, a nie numeru. Tablice skojarzeniowe można utworzyć za pomocą klasy Object. Narzędzie ActionScript umożliwia tworzenie tablic skojarzeniowych za pomocą klasy Array, jednakże w przypadku tak utworzonych tablic skojarzeniowych nie można użyć żadnej metody czy właściwości klasy Array.
Klasę Array można poszerzyć, nadpisać lub dodać do niej metody. W takim przypadku podklasę należy określić jako dynamic
. W przeciwnym razie w tablicy nie będzie można przechowywać danych.
Powiązane elementy interfejsu API
Właściwość | Zdefiniowane przez | ||
---|---|---|---|
constructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu. | Object | ||
length : uint
Nieujemna liczba całkowita określająca liczbę elementów tablicy. | Array |
Metoda | Zdefiniowane przez | ||
---|---|---|---|
Pozwala utworzyć tablicę z danymi elementami. | Array | ||
Pozwala utworzyć tablicę o określonej liczbie elementów. | Array | ||
Łączy elementy określone za pomocą parametrów z elementami znajdującymi się w tablicy i tworzy nową tablicę. | Array | ||
Do kolejnych elementów tablicy jest stosowana funkcja testowa. Procedura jest przerywana, gdy zostaje osiągnięty element, dla którego funkcja zwraca fałsz. | Array | ||
Do kolejnych elementów tablicy jest stosowana funkcja testowa. Powstaje nowa tablica elementów, w przypadku których funkcja zwraca prawdę. | Array | ||
Do każdego z elementów tablicy jest stosowana funkcja. | Array | ||
Wskazuje, czy dla obiektu zdefiniowano określoną właściwość. | Object | ||
Wyszukuje elementy tablicy, stosując operator ścisłej równości (===) i zwraca indeks znalezionego elementu. | Array | ||
Wstawia pojedynczy element do tablicy. | Array | ||
Wskazuje, czy instancja klasy Object należy do łańcucha prototypów obiektu określonego jako parametr. | Object | ||
Konwertuje elementy tablicy na ciągi znaków, wstawia między elementy określony separator, łączy je i zwraca ciąg wynikowy. | Array | ||
Program wyszukuje wstecz elementy tablicy, począwszy od ostatniego elementu i za pomocą operatora ścisłej równości (===) zwraca indeks zgodnego elementu. | Array | ||
Określona funkcja jest stosowana do wszystkich elementów tablicy. Dla każdego elementu jest tworzona nowa tablica elementów będących wartościami użytej funkcji. | Array | ||
Usuwa ostatni element tablicy i zwraca jego wartość. | Array | ||
Wskazuje, czy określona właściwość istnieje i jest przeliczalna. | Object | ||
Dodaje na końcu tablicy co najmniej jeden nowy element i zwraca nową długość tablicy. | Array | ||
Usuwa pojedynczy element z tablicy. | Array | ||
Tablica jest odwracana w miejscu. | Array | ||
Ustawia dostępność właściwości dynamicznej używanej w pętlach. | Object | ||
Usuwa pierwszy element tablicy i zwraca jego wartość. | Array | ||
Zwraca nową tablicę składającą się z zakresu elementów tablicy oryginalnej bez jej modyfikacji. | Array | ||
Do kolejnych elementów tablicy jest stosowana funkcja testowa. Procedura jest przerywana, gdy zostaje osiągnięty element, dla którego funkcja zwraca prawdę. | Array | ||
Sortuje elementy tablicy. | Array | ||
Sortuje elementy tablicy według co najmniej jednego pola w tablicy. | Array | ||
Dodaje i usuwa elementy tablicy. | Array | ||
Zwraca ciąg znaków reprezentujący elementy określonej tablicy. | Array | ||
Zwraca ciąg znaków reprezentujący elementy określonej tablicy. | Array | ||
Dodaje na początku tablicy co najmniej jeden element i zwraca nową długość tablicy. | Array | ||
Zwraca pierwotną wartość dla określonego obiektu. | Object |
Stała | Zdefiniowane przez | ||
---|---|---|---|
CASEINSENSITIVE : uint = 1 [statyczny]
W ramach metod sortowania klasy Array określa sortowanie z uwzględnieniem wielkości liter. | Array | ||
DESCENDING : uint = 2 [statyczny]
W ramach metod sortowania klasy Array określa sortowanie w porządku malejącym. | Array | ||
NUMERIC : uint = 16 [statyczny]
W ramach metod sortowania klasy Array określa sortowanie numeryczne (a nie alfabetyczne). | Array | ||
RETURNINDEXEDARRAY : uint = 8 [statyczny]
Określa, że sortowanie ma zwracać tablicę indeksów. | Array | ||
UNIQUESORT : uint = 4 [statyczny]
W ramach metod sortowania klasy Array określa niepowtarzalne kryterium sortowania. | Array |
length | właściwość |
length:uint
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Nieujemna liczba całkowita określająca liczbę elementów tablicy. Aktualizacja tej właściwości przebiega automatycznie podczas dodawania nowych elementów do tablicy. Przypisanie wartości elementowi tablicy (na przykład moja_tablica[indeks] = wartość
), gdzie indeks
jest liczbą, a indeks+1
jest większy od wartości właściwości length
, spowoduje aktualizację właściwości length
do wartości indeks+1
.
Uwaga: Przypisanie wartości do właściwości length
, której wartość jest mniejsza niż wartość aktualnej długości spowoduje, że tablica zostanie przycięta.
Implementacja
public function get length():uint
public function set length(value:uint):void
Przykład ( Sposób korzystania z tego przykładu )
names
zawierający jako element ciąg Bill
. Następnie za pomocą metody push()
został dodany jako element kolejny ciąg Kyle
. Długość tablicy zdefiniowana właściwością length
przed zastosowaniem metody push()
była ustawiona na jeden element. Po wywołaniu metody push()
tablica zawiera dwa elementy. Dodanie kolejnego ciągu Jeff
spowoduje zwiększenie długości tablicy names
do trzech elementów. Dwukrotne wywołanie metody shift()
sprawi, że elementy Bill
i Kyle
zostaną usunięte, a ostateczna wartość właściwości length
tablicy zostanie ustawiona na jeden element.
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)
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Pozwala utworzyć tablicę z podanymi elementami. Podane wartości mogą być dowolnego typu. Indeks (lub pozycja) pierwszego elementu tablicy ma zawsze wartość 0.
Uwaga: Dla tej klasy pokazano dwa wpisy dla metody konstruktora, ponieważ konstruktor dopuszcza różne typy argumentów. Zachowanie konstruktora może być różne w zależności od typu i liczby przekazanych argumentów określonych w każdym wpisie. Narzędzie ActionScript 3.0 nie obsługuje przeładowania metod czy konstruktora.
Parametry... values — Lista dowolnych wartości oddzielonych przecinkiem.
Uwaga: Jeśli tylko jeden parametr liczbowy zostanie przekazany do konstruktora Array, zostaje on przyjęty jako wartość właściwości |
Zgłasza
RangeError — Argument to liczba nie będąca liczbą całkowitą większą lub równą 0.
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
one
, two
, oraz three
, a następnie przekonwertowano te elementy na ciągi znaków.
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)
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Pozwala utworzyć tablicę o określonej liczbie elementów. Jeśli parametry nie zostaną określone, utworzona tablica nie będzie zawierała żadnych elementów. Określenie liczby elementów spowoduje, że liczba elementów w utworzonej tablicy będzie równa wartości numElements
.
Uwaga: Dla tej klasy pokazano dwa wpisy dla metody konstruktora, ponieważ konstruktor dopuszcza różne typy argumentów. Zachowanie konstruktora może być różne w zależności o typu i liczby przekazanych argumentów określonych w każdym wpisie. Narzędzie ActionScript 3.0 nie obsługuje przeładowania metod czy konstruktora.
ParametrynumElements:int (default = 0 ) — Liczba całkowita określająca liczbę elementów w tablicy.
|
Zgłasza
RangeError — Argument to liczba niebędąca liczbą całkowitą większa niż lub równa 0.
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
myArr
, który nie zawiera żadnych argumentów, a jego wartość początkowa wynosi 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”
, a za pomocą metody push()
dodano na koniec tablicy element ciągu „six”
:
package { import flash.display.Sprite; public class Array_Array_2 extends Sprite { public function Array_Array_2() { var myArr:Array = new Array(5); trace(myArr.length); // 5 myArr[0] = "one"; myArr.push("six"); trace(myArr); // one,,,,,six trace(myArr.length); // 6 } } }
concat | () | metoda |
AS3 function concat(... args):Array
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Łączy elementy określone za pomocą parametrów z elementami znajdującymi się w tablicy i tworzy nową tablicę. Jeśli parametry określają tablicę, jej elementy zostaną połączone. Jeśli nie zostaną przekazane żadne parametry, nowa tablica będzie stanowić duplikat (jednopoziomowy klon) tablicy oryginalnej.
Parametry
... args — Wartość należąca do dowolnego typu danych (jak np. liczby, elementy lub ciągi), która zostanie dołączona do nowej tablicy.
|
Array — Tablica zawierająca elementy danej tablicy, po których następują elementy określone przez parametry.
|
Przykład ( Sposób korzystania z tego przykładu )
- Tablicę
numbers
zawierającą liczby:1
,2
i3
. - Tablicę
letters
zawierającą litery:a
,b
orazc
. - Tablicę
numbersAndLetters
, która wywołuje metodęconcat()
w celu utworzenia tablicy[1,2,3,a,b,c]
. - Tablicę
lettersAndNumbers
która wywołuje metodęconcat()
w celu utworzenia tablicy[a,b,c,1,2,3]
.
var numbers:Array = new Array(1, 2, 3); var letters:Array = new Array("a", "b", "c"); var numbersAndLetters:Array = numbers.concat(letters); var lettersAndNumbers:Array = letters.concat(numbers); trace(numbers); // 1,2,3 trace(letters); // a,b,c trace(numbersAndLetters); // 1,2,3,a,b,c trace(lettersAndNumbers); // a,b,c,1,2,3
every | () | metoda |
AS3 function every(callback:Function, thisObject:* = null):Boolean
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wykonuje test funkcji dla poszczególnych elementów tablicy do momentu napotkania elementu, dla którego określona funkcja zwraca wartość false
. Ta metoda służy do określenia, czy wszystkie elementy tablicy spełniają dane kryterium, jak np. posiadanie wartości mniejszych niż określona liczba.
Wartość drugiego parametru thisObject
dla tej metody musi być równa wartości null
, jeśli pierwszy parametr callback
stanowi zamknięcie metody. Na przykład, użytkownik w klipie filmowym tworzy funkcję o nazwie me
:
function myFunction(obj:Object):void { //your code here }
Załóżmy, że następnie uruchamia metodę every()
dla tablicy o nazwie myArray
:
myArray.every(myFunction, me);
Ponieważ funkcja myFunction
należy do klasy Timeline, której nie można przesłonić za pomocą funkcji me
, środowisko wykonawcze Flash Player wygeneruje wyjątek. Aby uniknąć tego błędu czasu wykonywania, należy funkcji przypisać zmienną w następujący sposób:
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.every(myFunction, me);
Parametry
callback:Function — Funkcja uruchamiana dla poszczególnych elementów tablicy. Funkcja zawiera porównanie proste (na przykład, element < 20 ) lub bardziej złożoną operację i jest wywoływana wraz z trzema argumentami: wartością elementu, jego indeksem i obiektem Array:
function callback(item:*, index:int, array:Array):Boolean; | |
thisObject:* (default = null ) — Obiekt użyty w funkcji jako identyfikator this .
|
Boolean — Wartość typu Boolean jest true , jeśli dla wszystkich elementów tablicy funkcja zwraca wartość true ; w przeciwnym razie wartość typu Boolean to false .
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
isNumeric
przyjmuje wartość true
, a dla drugiej — wartość false
:
package { import flash.display.Sprite; public class Array_every extends Sprite { public function Array_every() { var arr1:Array = new Array(1, 2, 4); var res1:Boolean = arr1.every(isNumeric); trace("isNumeric:", res1); // true var arr2:Array = new Array(1, 2, "ham"); var res2:Boolean = arr2.every(isNumeric); trace("isNumeric:", res2); // false } private function isNumeric(element:*, index:int, arr:Array):Boolean { return (element is Number); } } }
filter | () | metoda |
AS3 function filter(callback:Function, thisObject:* = null):Array
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Uruchamia funkcję testową dla poszczególnych elementów tablicy i tworzy nową tablicę dla wszystkich elementów, dla których określona funkcja zwróciła wartość true
. Jeśli wartość zwrócona dla danego elementu to false
, ten element nie zostanie uwzględniony w nowej tablicy.
Wartość drugiego parametru thisObject
dla tej metody musi być równa wartości null
, jeśli pierwszy parametr callback
stanowi zamknięcie metody. Na przykład, użytkownik w klipie filmowym tworzy funkcję o nazwie me
:
function myFunction(obj:Object):void { //your code here }
Załóżmy, że następnie dla tablicy o nazwie myArray
uruchamia metodę filter()
:
myArray.filter(myFunction, me);
Ponieważ funkcja myFunction
należy do klasy Timeline, której nie można przesłonić za pomocą funkcji me
, środowisko wykonawcze Flash Player wygeneruje wyjątek. Aby uniknąć tego błędu czasu wykonywania, należy funkcji przypisać zmienną w następujący sposób:
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.filter(myFunction, me);
Parametry
callback:Function — Funkcja uruchamiana dla poszczególnych elementów tablicy. Funkcja zawiera porównanie proste (na przykład, element < 20 ) lub bardziej złożoną operację i jest wywoływana wraz z trzema argumentami: wartością elementu, jego indeksem i obiektem Array:
function callback(item:*, index:int, array:Array):Boolean; | |
thisObject:* (default = null ) — Obiekt użyty w funkcji jako identyfikator this .
|
Array — Nowa tablica zawierająca wszystkie elementy oryginalnej tablicy, dla których zwrócona wartość to true .
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
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 | () | metoda |
AS3 function forEach(callback:Function, thisObject:* = null):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Do każdego z elementów tablicy jest stosowana funkcja.
Wartość drugiego parametru thisObject
dla tej metody musi być równa wartości null
, jeśli pierwszy parametr callback
stanowi zamknięcie metody. Na przykład, użytkownik w klipie filmowym tworzy funkcję o nazwie me
:
function myFunction(obj:Object):void { //your code here }
Załóżmy, że następnie wywołuje metodę forEach()
dla tablicy o nazwie myArray
:
myArray.forEach(myFunction, me);
Ponieważ funkcja myFunction
należy do klasy Timeline, której nie można przesłonić za pomocą funkcji me
, środowisko wykonawcze Flash Player wygeneruje wyjątek. Aby uniknąć tego błędu czasu wykonywania, należy funkcji przypisać zmienną w następujący sposób:
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.forEach(myFunction, me);
Parametry
callback:Function — Funkcja uruchamiana dla poszczególnych elementów tablicy. Funkcja może zawierać polecenie proste (na przykład instrukcję trace() ) lub bardziej złożoną operację i jest wywoływana wraz z trzema argumentami: wartością elementu, jego indeksem i obiektem Array:
function callback(item:*, index:int, array:Array):void; | |
thisObject:* (default = null ) — Obiekt użyty w funkcji jako identyfikator this .
|
Przykład ( Sposób korzystania z tego przykładu )
trace()
w funkcji traceEmployee()
:
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()
w lekko zmienionej funkcji traceEmployee()
:
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 | () | metoda |
AS3 function indexOf(searchElement:*, fromIndex:int = 0):int
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wyszukuje element tablicy za pomocą operatora ścisłej równości (===
) i zwraca indeks znalezionego elementu.
Parametry
searchElement:* — Element szukany w tablicy.
| |
fromIndex:int (default = 0 ) — Położenie w tablicy, od którego rozpoczyna się wyszukiwanie elementu.
|
int — Indeks pierwszego elementu tablicy. Jeśli argument searchElement nie zostanie znaleziony, zwrócona zostanie wartość –1.
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
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 | () | metoda |
AS3 function insertAt(index:int, element:*):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 19, AIR 19 |
Wstawia pojedynczy element do tablicy. Ta metoda modyfikuje tablicę i nie tworzy jej kopii.
Parametry
index:int — Liczba całkowita określająca pozycję w tablicy, w której ma zostać wstawiony element. Za pomocą całkowitej liczby ujemnej można określić położenie względem końca tablicy (na przykład liczba -1 reprezentuje ostatni element tablicy).
| |
element:* |
join | () | metoda |
AS3 function join(sep:*):String
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Konwertuje elementy tablicy na ciągi znaków, wstawia między elementy określony separator, łączy je i zwraca ciąg wynikowy. Tablice zagnieżdżone są zawsze oddzielone przecinkiem (,), a nie separatorem przekazanym za pośrednictwem metody join()
.
Parametry
sep:* (default = NaN ) — Znak lub ciąg znaków oddzielający elementy tablicy w ciągu wynikowym. W przypadku pominięcia tego parametru separatorem domyślnym jest przecinek.
|
String — Ciąg zawierający elementy tablicy przekonwertowane na ciągi znaków, oddzielone określonymi parametrami.
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
myArr
zawierający następujące elementy: one
, two
oraz three
, a następnie ciąg o elementach one, two, three
, wykorzystując metodę 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
z elementami (
, )
, -
oraz odstępem, a następnie wygenerować ciąg zawierający (888) 867-5309
. Używając pętli for
, można usunąć każdy znak specjalny o typie określonym przez obiekt specialChars
i wygeneruje ciąg (myStr
), który będzie zawierał tylko cyfry danego numeru telefonu: 888675309
. Do obiektu specialChars
można dodawać również inne znaki, takie jak +
. Wówczas ta procedura obsługiwałaby numery telefonu w formacie międzynarodowym.
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 | () | metoda |
AS3 function lastIndexOf(searchElement:*, fromIndex:int = 0x7fffffff):int
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wyszukuje element tablicy wstecz, rozpoczynając od ostatniego elementu i za pomocą operatora ścisłej równości (===
) zwraca indeks zgodnego elementu.
Parametry
searchElement:* — Element szukany w tablicy.
| |
fromIndex:int (default = 0x7fffffff ) — Położenie w tablicy, od którego rozpoczyna się wyszukiwanie elementu. Wartością domyślną jest maksymalna wartość dopuszczona przez indeks. Jeśli parametr fromIndex nie zostanie określony, wyszukiwanie rozpocznie się od ostatniego elementu tablicy.
|
int — Indeks pierwszego elementu tablicy. Jeśli argument searchElement nie zostanie znaleziony, zwrócona zostanie wartość –1.
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
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 | () | metoda |
AS3 function map(callback:Function, thisObject:* = null):Array
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Określona funkcja jest stosowana do wszystkich elementów tablicy. Dla każdego elementu jest tworzona nowa tablica elementów będących wartościami użytej funkcji.
Wartość drugiego parametru thisObject
dla tej metody musi być równa wartości null
, jeśli pierwszy parametr callback
stanowi zamknięcie metody. Na przykład, użytkownik w klipie filmowym tworzy funkcję o nazwie me
:
function myFunction(obj:Object):void { //your code here }
Załóżmy, że następnie użyje metody map()
dla tablicy o nazwie myArray
:
myArray.map(myFunction, me);
Ponieważ funkcja myFunction
należy do klasy Timeline, której nie można przesłonić za pomocą funkcji me
, środowisko wykonawcze Flash Player wygeneruje wyjątek. Aby uniknąć tego błędu czasu wykonywania, należy funkcji przypisać zmienną w następujący sposób:
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.map(myFunction, me);
Parametry
callback:Function — Funkcja uruchamiana dla poszczególnych elementów tablicy. Ta funkcja zawiera proste polecenie (jak np. zmiana wielkości liter w tablicy ciągów) lub bardziej złożoną operację i jest wywoływana wraz z trzema argumentami: wartością elementu, jego indeksem i obiektem Array:
function callback(item:*, index:int, array:Array):String; | |
thisObject:* (default = null ) — Obiekt użyty w funkcji jako identyfikator this .
|
Array — Nowa tablica zawierająca wyniki wywołania funkcji dla poszczególnych elementów oryginalnej tablicy.
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
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 | () | metoda |
AS3 function pop():*
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Usuwa ostatni element tablicy i zwraca jego wartość.
Zwraca* — Wartość ostatniego elementu (niezależnie od typu danych) określonej tablicy.
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
letters
z następującymi elementami: a
, b
oraz c
. Następnie ostatni element (c
) jest usuwany z tablicy za pomocą metody pop()
i przypisany do obiektu String o nazwie 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 | () | metoda |
AS3 function push(... args):uint
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Dodaje na końcu tablicy co najmniej jeden nowy element i zwraca nową długość tablicy.
Parametry
... args — Co najmniej jedna wartość dołączana do tablicy.
|
uint — Liczba całkowita reprezentująca długość nowej tablicy.
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
letters
, a następnie zapełnić tablicę elementami a
, b
oraz c
, wykorzystując metodę push()
.
var letters:Array = new Array(); letters.push("a"); letters.push("b"); letters.push("c"); trace(letters.toString()); // a,b,c
letters
, który początkowo zawiera element a
. Następnie za jednym wywołaniem metody push()
na koniec tablicy zostają dodane elementy b
i c
, która staje się tablicą o trzech elementach.
var letters:Array = new Array("a"); var count:uint = letters.push("b", "c"); trace(letters); // a,b,c trace(count); // 3
removeAt | () | metoda |
AS3 function removeAt(index:int):*
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 19, AIR 19 |
Usuwa pojedynczy element z tablicy. Ta metoda modyfikuje tablicę i nie tworzy jej kopii.
Parametry
index:int — Liczba całkowita określająca indeks elementu do usunięcia z tablicy. Za pomocą całkowitej liczby ujemnej można określić położenie względem końca tablicy (na przykład liczba -1 reprezentuje ostatni element tablicy).
|
* — Element usunięty z tablicy pierwotnej.
|
reverse | () | metoda |
AS3 function reverse():Array
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Tablica jest odwracana.
ZwracaArray — Nowa tablica.
|
Przykład ( Sposób korzystania z tego przykładu )
letters
z następującymi elementami: a
, b
oraz c
. Następnie za pomocą metody reverse()
kolejność elementów tablicy jest odwracana w celu utworzenia tablicy zawierającej elementy [c,b,a]
.
var letters:Array = new Array("a", "b", "c"); trace(letters); // a,b,c letters.reverse(); trace(letters); // c,b,a
shift | () | metoda |
AS3 function shift():*
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Usuwa pierwszy element tablicy i zwraca jego wartość. Pozostałe elementy tablicy zostają przeniesione z oryginalnego położenia „i” do położenia „i-1”.
Zwraca* — Pierwszy element tablicy (bez względu na typ danych).
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
letters
z elementami a
, b
oraz c
. Następnie za pomocą metody shift()
z obiektu letters
zostaje usunięty pierwszy element (a
) i przypisany do ciągu firstLetter
.
var letters:Array = new Array("a", "b", "c"); var firstLetter:String = letters.shift(); trace(letters); // b,c trace(firstLetter); // a
slice | () | metoda |
AS3 function slice(startIndex:int = 0, endIndex:int = 16777215):Array
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zwraca nową tablicę składającą się z zakresu elementów tablicy oryginalnej bez jej modyfikacji. Zwrócona tablica zawiera element startIndex
oraz wszystkie poprzedzające go elementy, z wyłączeniem elementu endIndex
.
Jeśli nie zostaną przekazane żadne parametry, nowa tablica będzie stanowić duplikat (jednopoziomowy klon) tablicy oryginalnej.
Parametry
startIndex:int (default = 0 ) — Liczba określająca indeks punktu początkowego fragmentu tablicy. Jeśli parametr startIndex jest liczbą ujemną, wówczas punkt początkowy znajduje się na końcu tablicy, gdzie liczba -1 określa ostatni element.
| |
endIndex:int (default = 16777215 ) — Liczba określająca indeks punktu końcowego fragmentu tablicy. Pominięcie tego parametru spowoduje, że fragment tablicy będzie zawierał wszystkie elementy, licząc od punktu początkowego do końca tablicy. Jeśli parametr endIndex stanowi wartość ujemną, punkt końcowy jest określany, licząc od końca tablicy, gdzie liczba -1 oznacza ostatni element.
|
Array — Tablica składająca się z zakresu elementów tablicy oryginalnej.
|
Przykład ( Sposób korzystania z tego przykładu )
letters
z elementami [a,b,c,d,e,f]
. Wywołanie metody slice()
dla poszczególnych elementów od pierwszego (b
) do trzeciego (d
) spowoduje utworzenie tablicy someLetters
wynikowo zawierającej elementy b
i 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
zawierający elementy [a,b,c,d,e,f]
. Następnie za pomocą metody slice()
wywołanej dla elementu dwa (c
) tworzona jest tablica someLetters
wynikowo zawierająca elementy [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
z elementami [a,b,c,d,e,f]
. Za pomocą wywołania metody slice()
dla poszczególnych elementów od drugiego od ostatniego, licząc od końca (e
) tworzona jest tablica someLetters
wynikowo zawierająca elementy e
i 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 | () | metoda |
AS3 function some(callback:Function, thisObject:* = null):Boolean
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Uruchamia funkcję testową dla poszczególnych elementów tablicy do momentu napotkania elementu, dla którego zwracana jest wartość true
. Ta metoda służy do określenia, czy dowolny element tablicy spełnia dane kryterium, jak np. posiadanie wartości mniejszej niż określona liczba.
Wartość drugiego parametru thisObject
dla tej metody musi być równa wartości null
, jeśli pierwszy parametr callback
stanowi zamknięcie metody. Na przykład, użytkownik w klipie filmowym tworzy funkcję o nazwie me
:
function myFunction(obj:Object):void { //your code here }
Załóżmy, że wywoła następnie metodę some()
dla tablicy o nazwie myArray
:
myArray.some(myFunction, me);
Ponieważ funkcja myFunction
należy do klasy Timeline, której nie można przesłonić za pomocą funkcji me
, środowisko wykonawcze Flash Player wygeneruje wyjątek. Aby uniknąć tego błędu czasu wykonywania, należy funkcji przypisać zmienną w następujący sposób:
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.some(myFunction, me);
Parametry
callback:Function — Funkcja uruchamiana dla poszczególnych elementów tablicy. Funkcja zawiera porównanie proste (na przykład, element < 20 ) lub bardziej złożoną operację i jest wywoływana wraz z trzema argumentami: wartością elementu, jego indeksem i obiektem Array:
function callback(item:*, index:int, array:Array):Boolean; | |
thisObject:* (default = null ) — Obiekt użyty w funkcji jako identyfikator this .
|
Boolean — Wartość typu Boolean jest true , jeśli dla dowolnego elementu tablicy funkcja zwraca wartość true ; w przeciwnym razie wartość typu Boolean to false .
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
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 | () | metoda |
AS3 function sort(... args):Array
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Sortuje elementy tablicy. Ta metoda sortuje według wartości Unicode. (Wartości ASCII stanowią podzbiór wartości Unicode.)
Domyślnie Array
.Metoda sort()
działa w następujący sposób:
- Wielkość liter jest w sortowaniu uwzględniania (Z poprzedza a).
- Sortowanie jest rosnące (a poprzedza b).
- Zmodyfikowana tablica odzwierciedla porządek sortowania; elementy złożone o identycznych polach sortowania zostały dowolnie umieszczone w sortowanej tablicy jedno po drugim.
- Wszystkie elementy bez względu na typ danych są sortowane jak ciągi znaków, tak więc 100 poprzedza 99, ponieważ „1” stanowi wartość ciągu niższą od „9”.
Sortowanie tablicy za pomocą ustawień innych niż domyślne można przeprowadzić za pomocą jednej z opcji sortowania opisanej we fragmencie dotyczącym argumentu sortOptions
parametru ...args
lub za pomocą własnej niestandardowej funkcji sortowania. Aby utworzyć funkcję niestandardową, należy wywołać metodę sort()
i użyć nazwy funkcji niestandardowej jako pierwszego argumentu (funkcja compareFunction
)
Parametry
... args — Argumenty określające funkcje porównania i przynajmniej jedną wartość, która określa sposób sortowania.
Ta metoda wykorzystuje składnię i kolejność argumentów
|
Array — Zwrócona wartość zależy od przekazania argumentu, jak przedstawiono na poniższej liście:
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
vegetables
zawierający elementy typu [spinach, green pepper, cilantro, onion, avocado]
. Tablica jest następnie sortowana przy użyciu metody sort()
wywołanej bez parametrów. Wynikiem jest tablica vegetables
przesortowana w kolejności alfabetycznej ([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
zawierający elementy typu [spinach, green pepper, Cilantro, Onion oraz Avocado]
. Tablica jest następnie sortowana przy użyciu metody sort()
, dla której w pierwszym wywołaniu nie określono parametrów. Wynikowa kolejność elementów jest następująca: [Avocado,Cilantro,Onion,green pepper,spinach]
. Wówczas dla tablicy vegetables
wywoływana jest powtórnie metoda sort()
ze stałą CASEINSENSITIVE
jako parametrem. Kolejność elementów w wynikowej wysortowanej tablicy vegetables
to kolejność alfabetyczna ([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
, który zostaje następnie zapełniony za pomocą pięciokrotnego wywołania metody push()
. Wynikiem każdego wywołania metody push()
będzie utworzenie nowego obiektu Vegetable
za pomocą konstruktora Vegetable()
, który akceptuje obiekty String (name
) oraz Number (price
). Wynikiem pięciokrotnego wywołania metody push()
z uwzględnieniem wartości będzie następująca tablica: [lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44]
. Wówczas za pomocą metody sort()
przeprowadzane jest sortowanie tablicy, którego wynikiem będzie tablica zawierająca kolejno następujące elementy [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()
została użyta z niestandardową funkcja sortowania (sortOnPrice
), która sortuje według ceny, a nie w liter alfabetu. Za pomocą nowej funkcji getPrice()
wyodrębniona zostaje cena.
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
zawierający elementy [3,5,100,34,10]
. Wywołanie metody sort()
bez określenia parametrów spowoduje alfabetyczne sortowanie, którego wynik nie będzie spełniał oczekiwań: [10,100,3,34,5]
. Aby poprawnie sortować wartości liczbowe, należy metodzie sort()
podać stałą NUMERIC
, która będzie sortować liczby
w następującym porządku: [3,5,10,34,100]
.
Uwaga: Funkcja sort()
traktuje domyślnie każdy element jak ciąg znaków. Jeśli używany jest argument Array.NUMERIC
, środowisko wykonawcze Flash podejmie próbę przekształcenia wartości nieliczbowych na całkowite w celu sortowania. Jeśli się to nie powiedzie, środowisko robocze zgłosi błąd. Na przykład: środowisko wykonawcze może pomyślnie przekształcić wartość String "6"
na liczbę całkowitą, ale zwróci wyjątek, jeśli napotka wartość String równą "six"
.
var numbers:Array = new Array(3,5,100,34,10); trace(numbers); // 3,5,100,34,10 numbers.sort(); trace(numbers); // 10,100,3,34,5 numbers.sort(Array.NUMERIC); trace(numbers); // 3,5,10,34,100
sortOn | () | metoda |
AS3 function sortOn(fieldName:Object, options:Object = null):Array
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Sortuje elementy tablicy według określonych pól. Tablica powinna mieć następujące cechy:
- Tablica jest tablicą indeksowaną, a nie skojarzoną.
- Każdy element tablicy posiada obiekt o przynajmniej jednej właściwości.
- Wszystkie obiekty mają przynajmniej jedną wspólną właściwość, których wartości można używać do sortowania tablicy. Taka właściwość nosi nazwę field.
W przypadku przekazania wielu parametrów fieldName
pierwsze pole stanowi pierwszorzędne pole sortowania, drugie — drugorzędne pole sortowania itd. Program Flash sortuje według wartości Unicode. (Wartości ASCII stanowią podzbiór wartości Unicode.) Jeśli którykolwiek z dwóch porównywanych elementów nie zawiera pola określonego parametrem fieldName
, przyjmuje się, że to pole zostało ustawione na wartość undefined
, a elementy sortowanej tablicy są dowolnie umieszczane jeden po drugim.
Domyślnie Array
.Metoda sortOn()
działa w następujący sposób:
- Wielkość liter jest w sortowaniu uwzględniania (Z poprzedza a).
- Sortowanie jest rosnące (a poprzedza b).
- Zmodyfikowana tablica odzwierciedla porządek sortowania; elementy złożone o identycznych polach sortowania zostały dowolnie umieszczone w sortowanej tablicy jedno po drugim.
- Pola numeryczne są sortowane jak ciągi znaków, tak więc 100 poprzedza 99, ponieważ „1” stanowi wartość ciągu niższą od „9”.
W programie Flash Player 7 dodano parametr options
, który służy do nadpisywania domyślnego sposobu sortowania. Aby przeprowadzić sortowanie prostej tablicy (na przykład, tablicy zawierającej tylko jedno pole), lub określić porządek sortowania nieobsługiwany przez parametr options
, należy użyć metody Array.sort()
.
Aby przekazać wiele flag, należy rozdzielić je operatorem bitowym OR (|
):
my_array.sortOn(someFieldName, Array.DESCENDING | Array.NUMERIC);
W programie Flash Player 8 dodano możliwość określania różnych opcji sortowania dla każdego pola w przypadku sortownia według więcej niż jednego pola. W programie Flash Player 8 i jego późniejszych wersjach, parametr options
akceptuje tabelę wysortowanych opcji w taki sposób, że każda opcja sortowania odpowiada polu sortowania określonego przez parametr fieldName
. Poniższy przykład ilustruje sortowanie malejące według pierwszorzędnego pola sortowania a
; sortowanie numeryczne według drugorzędnego pola sortowania, b
oraz sortowanie według trzeciorzędnego pola sortowania c
uwzględniającego wielkość liter:
Array.sortOn (["a", "b", "c"], [Array.DESCENDING, Array.NUMERIC, Array.CASEINSENSITIVE]);
Uwaga: Tablice fieldName
oraz options
muszą posiadać tę sama liczbę elementów; w przeciwnym razie tablica options
zostanie pominięta. Opcji Array.UNIQUESORT
i Array.RETURNINDEXEDARRAY
można użyć jedynie jako pierwszych elementów tablicy, w przeciwnym razie zostaną one pominięte.
Parametry
fieldName:Object — Ciąg, który określa pole będące wartością sortowania, lub tablica, której pierwszy element reprezentuje pierwszorzędne pole sortowania, drugi — drugorzędne pole sortowania itd.
| |
options:Object (default = null ) — Jedna lub więcej liczb lub nazw określonych stałych, oddzielonych przy użyciu operatora bitowego OR (|) , który zmienia sposób sortowania. Dla parametru options dopuszczalne są następujące wartości:
Użycie flagi w formie ciągu (na przykład, |
Array — Zwrócona wartość zależy od tego, czy przesłane zostały parametry:
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
vegetables
, który zostaje następnie zapełniony za pomocą pięciokrotnego wywołania metody push()
. Wynikiem każdego wywołania metody push()
będzie utworzenie nowego obiektu Vegetable
za pomocą konstruktora Vegetable()
, który akceptuje obiekty String (name
) oraz Number (price
). Wynikiem pięciokrotnego wywołania metody push()
z uwzględnieniem wartości będzie następująca tablica: [lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44]
. Następnie za pomocą metody sortOn()
wraz z parametru name
tworzona jest następująca tablica: [asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44]
. Metoda sortOn()
jest powtórnie wywoływana z parametrem ceny oraz stałymi NUMERIC i DESCENDING. Wynikiem tego wywołania jest tablica wysortowana malejąco według liczb: [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
, który zostaje następnie zapełniony za pomocą trzykrotnego wywołania metody push()
. Podczas każdego wywołania metody push()
do obiektu records
dodawane są ciągi: name
, city
oraz zip
. Do wydrukowania elementów tablicy potrzeba trzech pętli for
. Pierwsza pętla for
drukuje elementy w kolejności, w jakiej zostały dodane. Druga pętla for
zostaje uruchomiona po wysortowaniu obiektu records
według nazwy, a następnie miejscowości za pomocą metody sortOn()
. Wynik uruchomienia trzeciej pętli for
jest różny, ponieważ obiekt records
jest ponownie sortowany według miejscowości, a następnie według nazwy.
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
, który zostaje następnie zapełniony za pomocą czterokrotnego wywołania metody push()
. Wynikiem każdorazowego wywołania metody push()
będzie utworzenie nowego obiektu User za pomocą konstruktora User()
, a następnie dodanie do użytkowników ciągu name
oraz parametru age
typu uint. Tablica wynikowa będzie zawierać elementy: [Bob:3,barb:35,abcd:3,catchy:4]
.
Następnie tablica jest sortowana wg następującego porządku:
- Tylko wg nazwy, a wynikiem sortownia będzie tablica o elementach
[Bob:3,abcd:3,barb:35,catchy:4]
- Wg nazwy oraz z zastosowaniem stałej
CASEINSENSITIVE
, a wynikiem sortowania będzie tablica o elementach:[abcd:3,barb:35,Bob:3,catchy:4]
- Wg nazwy oraz z zastosowaniem stałych
CASEINSENSITIVE
iDESCENDING
, a wynikiem sortowania będzie tablica o elementach:[catchy:4,Bob:3,barb:35,abcd:3]
- Wg wieku, a wynikiem sortowanie będzie tablica o elementach:
[abcd:3,Bob:3,barb:35,catchy:4]
- Wg wieku oraz z zastosowaniem stałej
NUMERIC
, a wynikiem sortowanie będzie tablica o elementach:[Bob:3,abcd:3,catchy:4,barb:35]
- Wg wieku oraz z zastosowaniem stałych
DESCENDING
iNUMERIC
, a wynikiem sortowania będzie tablica o elementach:[barb:35,catchy:4,Bob:3,abcd:3]
W kolejnym kroku zostaje utworzona tablica o nazwie indices
, do której zostają przypisane wyniki sortowania wg wieku oraz z zastosowaniem stałych NUMERIC
i RETURNINDEXEDARRAY
, zawierająca następujące elementy: [Bob:3,abcd:3,catchy:4,barb:35]
, które są następnie drukowane za pomocą pętli 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 | () | metoda |
AS3 function splice(startIndex:int, deleteCount:uint, ... values):Array
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Dodaje i usuwa elementy tablicy. Ta metoda modyfikuje tablicę i nie tworzy jej kopii.
Uwaga: Aby nadpisać te metodę w podklasie Array, należy użyć parametrów w postaci ...args
, jak pokazano w poniższym przykładzie:
public override function splice(...args) { // your statements here }
Parametry
startIndex:int — Liczba całkowita określająca indeks elementu w tablicy, od którego rozpoczyna się wstawienie lub usunięcie. Za pomocą całkowitej liczby ujemnej można określić położenie względem końca tablicy (na przykład liczba -1 reprezentuje ostatni element tablicy).
| |
deleteCount:uint — Liczba całkowita określająca liczbę elementów do usunięcia. Ta liczba zawiera element określony parametrem startIndex . Jeśli wartość parametru deleteCount nie została określona, metoda usunie wszystkie wartości, począwszy od elementu startIndex aż do ostatniego elementu tablicy. Jeśli wartość wynosi 0, żaden element nie jest usuwany.
| |
... values — Opcjonalna lista jednej lub wielu oddzielonych przecinkami wartości, która zostanie wstawiona do innej tablicy w położeniu określonym za pomocą parametru startIndex . Jeśli wstawiana wartość jest typu Array, tablica pozostanie niezmieniona i będzie wstawiana jako jeden element. Na przykład: jeśli istniejąca tablica o długości trzy zostanie połączona z inną tablicą o długości trzy, wynikowa tablica będzie zawierała tylko cztery elementy. Jeden z tych elementów będzie tablicą o długości trzy.
|
Array — Tablica zawierająca elementy usunięte z tablicy oryginalnej.
|
Przykład ( Sposób korzystania z tego przykładu )
vegetables
zawierający elementy: [spinach, green pepper, cilantro, onion, avocado]
. Wywołanie metody splice()
z parametrami 2 i 2 spowoduje przypisanie elementów cilantro
oraz onion
do tablicy spliced
. Tablica vegetables
będzie wówczas zawierać elementy: [spinach,green pepper,avocado]
. Kolejne wywołanie metody splice()
wraz z parametrami 1, 0 oraz tablicą spliced
spowoduje przypisanie elementów [cilantro,onion]
jako drugiego elementu tablicy vegetables
.
var vegetables:Array = new Array("spinach", "green pepper", "cilantro", "onion", "avocado"); var spliced:Array = vegetables.splice(2, 2); trace(vegetables); // spinach,green pepper,avocado trace(spliced); // cilantro,onion vegetables.splice(1, 0, spliced); trace(vegetables); // spinach,cilantro,onion,green pepper,avocado
cilantro
i onion
są traktowane jakby tablica vegetables
zawierała 5 elementów, choć właściwie zawiera cztery (drugi element stanowi dwuelementową tablicę). Elementy cilantro
i onion
można dodać indywidualnie w następujący sposób:
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 | () | metoda |
public function toLocaleString():String
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zwraca ciąg znaków reprezentujący elementy określonej tablicy. Każdy element tablicy, począwszy od elementu o indeksie 0 aż po najwyższy indeks jest konwertowany do łączonego ciągu i oddzielany przecinkami. W narzędziu ActionScript 3.0 ta metoda zwraca te same wartości co metoda Array.toString()
.
String — Ciąg elementów tablicy.
|
Powiązane elementy interfejsu API
toString | () | metoda |
public function toString():String
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zwraca ciąg znaków reprezentujący elementy określonej tablicy. Każdy element tablicy, począwszy od elementu o indeksie 0 aż po najwyższy indeks jest konwertowany do łączonego ciągu i oddzielany przecinkami. Aby określić separator niestandardowy, należy użyć metody Array.join()
.
String — Ciąg elementów tablicy.
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
vegnums
typu danych 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 | () | metoda |
AS3 function unshift(... args):uint
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Dodaje na początku tablicy co najmniej jeden element i zwraca nową długość tablicy. Pozostałe elementy tablicy zostają przesunięte z oryginalnego położenia „i” do położenia „i+1”.
Parametry
... args — Jedna lub więcej liczb, elementów lub zmiennych, które zostaną wstawione na początku tablicy.
|
uint — Liczba całkowita reprezentująca nową długość tablicy.
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
names
. Za pomocą metody push()
dodawane są ciągi Bill
i Jeff
. Następnie za pomocą dwukrotnego wywołania metody unshift()
na początek tablicy names
dodawane są ciągi Alfred
i Kyle
.
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 | Stała |
public static const CASEINSENSITIVE:uint = 1
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
W ramach metod sortowania klasy Array określa sortowanie z uwzględnieniem wielkości liter. Tej stałej używa się dla parametru options
w przypadku metody sort()
lub sortOn()
.
Wartością tej stałej jest liczba 1.
Powiązane elementy interfejsu API
DESCENDING | Stała |
public static const DESCENDING:uint = 2
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
W ramach metod sortowania klasy Array określa sortowanie w porządku malejącym. Tej stałej używa się dla parametru options
w przypadku metody sort()
lub sortOn()
.
Wartością tej stałej jest liczba 2.
Powiązane elementy interfejsu API
NUMERIC | Stała |
public static const NUMERIC:uint = 16
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
W ramach metod sortowania klasy Array określa sortowanie numeryczne (a nie alfabetyczne). Zastosowane tej stałej do parametru options
spowoduje, że sortowanie liczb za pomocą metod sort()
i sortOn()
będzie się odbywać według ich wartości liczbowych, a nie ciągu znaków numerycznych. Jeśli stała NUMERIC
nie zostanie ujęta, podczas sortowania każdy element tablicy będzie traktowany jako ciąg znaków, a rezultat takiego sortowania zostanie przedstawiony w porządku Unicode.
Na przykład, jeśli dla danej tablicy wartości [2005, 7, 35]
stała NUMERIC
nie zostanie włączona do parametru options
, porządek elementów w wysortowanej tablicy będzie następujący: [2005, 35, 7]
. Jeśli jednak stała NUMERIC
zostanie do niego włączona, tablica wyświetli elementy w następującym porządku [7, 35, 2005]
.
Ta stała ma zastosowanie tylko do liczb w tablicy; nie można jej stosować do ciągów, które zawierają dane liczbowe, jak np. [„23”, „5”]
.
Wartością tej stałej jest liczba 16.
Powiązane elementy interfejsu API
RETURNINDEXEDARRAY | Stała |
public static const RETURNINDEXEDARRAY:uint = 8
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Określa, że sortowanie ma zwracać tablicę indeksów. Tej stałej używa się dla parametru options
w przypadku zastosowania metod sort()
lub sortOn()
. Stała umożliwia uzyskanie dostępu do wielu widoków elementów tablicy bez konieczności modyfikacji oryginalnej tablicy.
Wartością tej stałej jest liczba 8.
Powiązane elementy interfejsu API
UNIQUESORT | Stała |
public static const UNIQUESORT:uint = 4
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
W ramach metod sortowania klasy Array określa niepowtarzalne kryterium sortowania. Tej stałej używa się dla parametru options
w przypadku metody sort()
lub sortOn()
. Unikalna opcja sortowania przerywa sortowanie, jeśli dowolne dwa sortowane elementy lub pola posiadają identyczne wartości.
Wartością tej stałej jest liczba 4.
Powiązane elementy interfejsu API
myArr
, który nie zawiera żadnych argumentów, a jego wartość początkowa wynosi 0:
package { import flash.display.Sprite; public class ArrayExample extends Sprite { public function ArrayExample() { var myArr:Array = new Array(); trace(myArr.length); // 0 } } }
Tue Jun 12 2018, 12:06 PM Z