Array

Znaczenie Array, jak wyczytaliśmy w pewnym słowniku dotyczy tablicy ,także orientacji. Można  połączyć te dwa wyrazy, wtedy byśmy nazwali całość znaczenia, że jest to tablica orientacji. Takie znaczenie Array i jego wyjaśnienie należy następnie zapamiętać, aby będąc na innych stronach gdzie jest potrzebna akurat ta konfrontacja nie przechodzić na inną stronę w celu przypomnienia znaczenia tego słowa, lecz korzystać z własnej pamięci. Array wzięliśmy z tematu o JavaScript, dlatego też należy pamiętać pochodzenie słowa. Jeśli mówimy, że słowo Array pochodzi z tematu JavaScript, musimy wyjaśnić teraz ,jakie znaczene ma JavaScript. JavaScript to język skryptowy oprogramowania stosowany na stronach internetowych. Najczęście stosuje się Java Script na stronach WWW. Funkcje JavaScript to reagowanie na zdarzenia, sprawdzanie poprawności formularzy, budowanie elementów nawigacyjnych. W języku JavaScript można także pisać pełnoprawne aplikacje.

UWAGA: Tłumaczenie tej strony nie zostało zakończone.
Może być ona niekompletna lub wymagać korekty.
Chcesz pomóc? | Dokończ tłumaczenie | Sprawdź ortografię | Więcej takich stron+.

Podsumowanie

Obiekt główny

Pozwala na pracę z tablicami.

Zobacz także: Nowości w JavaScript 1.6#Array extras i Nowości w JavaScript_1.7#Array_comprehensions

Tworzony przez

Konstruktor obiektu Array:

new Array(długośćTablicy)
new Array(element0,element1, ...,elementN)

Literał tablicy:

[element0,element1, ...,elementN]

Parametry

długośćTablicy
Początkowa długość tablicy. Aby móc przetwarzać wartości używamy własności długości tablicy length. Jeśli określona wartość nie jest liczbą, zostanie utworzona tablica jednoelementowa, a jej pierwszy element będzie posiadał ową wartość. Maksymalna długość tablicy wynosi 4,294,967,295 elementów.
element N
Lista wartości elementów tablicy. Tablica jest inicjowana z określonymi wartościami jako jej elementami, a długość tablicy (length) odpowiada liczbie jej elementów.

Opis

Tablica jest uporządkowanym zbiorem wartości przyporządkowanych ustalonej pojedynczej zmiennej.

Poniższy przykład tworzy obiekt Array przy użyciu literału tablicy. Tablica kawa zawiera trzy elementy i ma długość (length) równą 3:

kawa = ["mocca", "cappucino", "zbożowa"]

Można utworzyć tzw. zwartą tablicę składającą się z dwóch lub więcej elementów, o początkowym indeksie 0, jeśli poda się początkowe wartości wszystkich elementów. Zwarta tablica to taka, w której każdy element posiada wartość. Poniższy kod tworzy zwartą tablicę o trzech elementach:

myArray = new Array("Hello", myVar, 3.14159) 

Dostęp do elementów tablicy

Do elementów tablicy odwołujemy się po ich liczbie porządkowej (zaczynając od zera). Przykładowo, jeśli mamy zdefiniowaną tablicę:

mojaTablica = new Array("Wiatr","Deszcz","Ogień")

Do pierwszego elementu odwołujemy się poprzez mojaTablica[0], a do drugiego poprzez mojaTablica[1].

Podawanie pojedynczego parametru

Jeśli konstruktor Array zostanie wywołany z pojedynczym parametrem liczbowym, parametr ten zostanie uznany za początkową długość tablicy. Poniższy kod tworzy tablicę pięciu elementów:

rodzajPlatnosci = new Array(5)

Zachowanie konstruktora Array zależy od tego, czy jedyny parametr jest liczbą.

  • Jeśli jedyny parametr jest liczbą, konstruktor konwertuje tę liczbą do 32-bitowej liczby całkowitej bez znaku i tworzy tablicę o długości (liczbie elementów, length) równej tej liczbie. Tablica początkowo nie zawiera żadnych elementów, mimo że ma niezerową długość.
  • Jeśli parametr ten nie jest liczbą, tworzona jest tablica o długości 1, a parametr ten staje się jej pierwszym elementem.

Poniższy kod tworzy tablicę o długości 25, a następnie przypisuje wartości pierwszym trzem elementom:

rodzajeMuzyki = new Array(25)
rodzajeMuzyki[0] = "R&B"
rodzajeMuzyki[1] = "Blues"
rodzajeMuzyki[2] = "Jazz"

Pośrednie zwiększanie długości tablicy

Długość tablicy wzrasta samoczynnie, jeśli elementowi o indeksie wyższym niż obecna długość zostanie przypisana wartość. Poniższy kod tworzy tablicę o zerowej długości, a następnie przypisuje do niej 99. element. W wyniku długość tablicy zostaje zmieniona na 100.

kolory = new Array();
kolory[99] = "ciemnoniebieski";

Tworzenie tablicy z wyników wyrażenia regularnego

Wynik porównania pomiędzy regularnym wyrażeniem a łańcuchem znaków może utworzyć tablicę. Ta tablica ma własności i elementy, które przekazują informacje dotyczące porównania. Tablica jest wartością zwracaną przez RegExp.exec, String.match i String.replace. Aby zrozumieć te własności spójrz na poniższy przykład odwołując się do poniższej tabeli:

<SCRIPT LANGUAGE="JavaScript1.2">
//Porównuje łańcuch znaków złożony z jednego 'd' następnie kilku 'b' a następnie jednego 'd'
//Zapamiętuje porównane 'b' i następujące 'd'
//Ignoruje wielkość liter

mojRe=/d(b+)(d)/i;
mojaTablica = mojRe.exec("cdbBdbsbz");

</SCRIPT>

Własności i elementy zwracają wartości z poniższej tabeli:

Własność/Element Opis Przykład
input Wartość tylko-do-odczytu, opisująca oryginalny łańcuch znaków, do którego porównano wyrażenie regularne. cdbBdbsbz
index Własność tylko-do-odczytu, będąca indeksem (zaczynając od 0) porównanego znaku w łańcuchu znaków. 1
[0] Element tylko-do-odczytu, zawierający ostatnio porównane znaki. dbBd
[1], ...[n] Elementy tylko-do-odczytu, zawierające podobne podłańcuchy znaków, zawarte w wyrażeniu regularnym. Liczba możliwych podłańcuchów jest nieskończona. [1]=bB
[2]=d

Zgodność wsteczna

JavaScript 1.2

Zachowanie konstruktora Array z pojedynczym parametrem zależy od tego, czy znacznik <SCRIPT> zawiera atrybut LANGUAGE="JavaScript1.2":

  • Jeśli znacznik <SCRIPT> zawiera LANGUAGE="JavaScript1.2", wywołanie konstruktora Array z jednym parametrem zwraca tablicę jednoelementową. Na przykład, new Array(5) tworzy tablicę z jednym elementem, którym jest liczba 5. Konstruktor z pojedynczym parametrem działa więc tak samo, jak konstruktor z wieloma parametrami. Nie jest możliwe podanie długości tablicy w wywołaniu jej konstruktora.
  • Jeśli znacznik <SCRIPT> nie zawiera LANGUAGE="JavaScript1.2", to jedyny parametr konstruktora Array stanowi początkową długość tworzonej tablicy.

JavaScript 1.1 i starsze

Kiedy konstruktor Array wywołany zostanie z jednym parametrem, parametr ten stanowi początkową długość tworzonej tablicy. Poniższy kod tworzy tablicę pięcioelementową:

rodzajPlatnosci = new Array(5)

JavaScript 1.0

Do indeksowania tablicy musi być użyta jej liczba porządkowa; np. myArray[0].

Własności

constructor
Określa funkcję tworzącą prototyp obiektu.
index
Dla tablicy stworzonej przez porównanie wyrażenia regularnego, indeks (zaczynając od 0) znaków, wobec których nastąpiło porównanie w łańcuchu znaków.
input
Dla tablicy stworzonej przez porównanie wyrażenia regularnego, zawiera oryginalny łańcuch znaków, wobec którego nastąpiło porównanie.
length
Odzwierciedla ilość elementów tablicy.
prototype
Pozwala na dodawanie własności do wszystkich obiektów.

Metody

Metody modyfikujące

Te metody modyfikują tablice:

pop
Usuwa ostatni element tablicy i zwraca ten element.
push
Dodaje nowe elementy do końca tablicy i zwraca nową długość tablicy.
reverse
Odwraca kolejność elementów w tablicy - pierwszy staje się ostatnim, ostatni pierwszym.
shift
Usuwa pierwszy element tablicy i zwraca ten element.
sort
Sortuje elementy tablicy.
splice
Dodaje i/lub usuwa elementy z tablicy.
unshift
Dodaje jedną lub więcej elementów na początek tablicy i zwraca nową długość tablicy.

Metody dostępowe

Następujące metody nie modyfikuję tablicy, ale zwracają pewne reprezentacje tablicy.

concat
Zwraca nową tablicę złożoną z tej tablicy połączonej z innymi tablicami i/lub wartościami.
indexOf
Zwraca pierwszy (najmniejszy) indeks elementu w tablicy równego podanej wartości lub -1 gdy nie znaleziono takiego elementu.
join
Łączy wszystkie elementy tablicy w łańcuch znaków.
lastIndexOf
Zwraca ostatni (największy) indeks elementu takiego samego jak podany (odwrotnie niż indexOf) lub -1 gdy nic nie znaleziono.
slice
Wyciąga sekcję tablicy i zwraca nową tablicę.
toSource
Zwraca tablicę identyczną do podanej; możesz użyć tego do utworzenia nowej tablicy. Przesłania to metodę Object.toSource.
toString
Zwraca łańcuch znaków reprezentujący tablicę i jej elementy. Przesłania to metodę Object.toString.
valueOf
Zwraca wartość tablicy w postaci zmiennej typu prostego. Przesłania metodę Object.valueOf.

Metody iteracyjne

Istnieją metody, które używają jako argumentów funkcji, które mogą wywołać podczas przetwarzania tablicy. Kiedy te metody są wywoływane, wartość length tablicy jest sprawdzana i każdy element dodany w trakcie wykonywania funkcji nie jest brany pod uwagę. Inne zmiany w tablicy (zmiana wartości lub usunięcie elementu) mogą zmodyfikować wyniki operacji, jeśli metoda użyje zmienionych elementów. Specjalne zachowanie tych elementów w takich momentach nie jest zawsze zdefiniowane, i nie powinno się na takowych zbyt często polegać.

filter
Tworzy nową tablicę ze wszystkimi elementami pasującymi do filtra.
forEach
Wywołuje funkcję na każdym elemencie tablicy.
every
Zwraca true, jeśli każdy element tablicy usatysfakcjonuje podaną funkcję testującą.
map
Tworzy nową tablicę wyników funkcji, wywołanej na każdym elemencie tablicy.
some
Zwraca true, jeśli choć jeden element usatysfakcjonuje podaną funkcję testującą.
Następujące metody zostały wprowadzone w JavaScript 1.8. Zobacz Nowości w JavaScript 1.8 by uzyskać więcej informacji.
reduce
Stosuje funkcję dla dwóch pierwszych elementów tablicy łącząc je w jedną wartość. Proces jest powtarzany do momentu, gdy zostanie uzyskana pojedyczna wartość.
reduceRight
Stosuje funkcję dla dwóch ostatnich elementów tablicy łącząc je w jedną wartość. Proces jest powtarzany do momentu, gdy zostanie uzyskana pojedyncza wartość.

Metody ogólne

Wiele metod tablicowych JavaScriptu jest stworzonych tak, aby działały do każdych obiektów, które "wyglądają" jak tablice. Mogą one być użyte z każdym obiektem, który ma własność lenght i może być łatwo dostępny używając numerycznych wartości (tak jak indeksowanie np. array[5]).

DO ZROBIENIA: podaj przykłady z Array.prototype.forEach.call, i dodając do metody obiekt jak JavaArray lub String.

Niektóre metody (jak join) tylko czytają własność length i numeryczne własności obiektów, na których są wywołane. Inne, jak reverse, wymagają żeby wartości numeryczne oraz własność length były możliwe do zmiany; metody te nie mogą więc być wywołane na obiektach takich jak String, które nie pozwalają by ich wartość length bądź syntetyzowane wartości numeryczne były zmieniane.

Następujące metody nie potrzebują zmieniać wartości length ani własności numerycznych:

Poniższe metody zmieniają własność length lub wartości numeryczne obiektu, na którym są wywołane:

Przykłady

Przykład: Tworzenie tablicy

Poniższy kod tworzy tablicę msgArray o długości 0, a następnie przypisuje wartości do msgArray[0] i msgArray[99], zwiększając długość tablicy do 100.

msgArray = new Array()
msgArray[0] = "Witaj,"
msgArray[99] = "świecie"
// Poniższy warunek jest spełniony,
// ponieważ zdefiniowano element msgArray[99].
if (msgArray.length == 100)
   myVar="Długość tablicy jest równa 100."

Przykład: Tworzenie tablicy dwuwymiarowej

Poniższy kod tworzy tablicę dwuwymiarową i przypisuje wyniki do zmiennej myVar.

myVar="Test tablicy wielowymiarowej; "
a = new Array(4)
for (i=0; i < 4; i++) {
   a[i] = new Array(4)
   for (j=0; j < 4; j++) {
      a[i][j] = "["+i+","+j+"]"
   }
}
for (i=0; i < 4; i++) {
   str = "Wiersz "+i+":"
   for (j=0; j < 4; j++) {
      str += a[i][j]
   }
   myVar += str +"; "
}

Poniższy łańcuch znaków będzie przypisany do zmiennej myVar (linie zostały przełamane dla zwiększenia czytelności):

Test tablicy wielowymiarowej;
Wiersz 0:[0,0][0,1][0,2][0,3];
Wiersz 1:[1,0][1,1][1,2][1,3];
Wiersz 2:[2,0][2,1][2,2][2,3];
Wiersz 3:[3,0][3,1][3,2][3,3];