JavaScript dla każdego
//  wróć   główna   dalej  //

Tablice

new Array join() reverse()

Tablice są bardzo pomocne w przypadku, gdy wprowadzamy kilkanaście lub więcej wartości zmiennych, które należą do tej samej grupy, np. nazwiska, adresy, e-maile itp. Ich zasadniczą zaletą jest to, że są zapamiętywane pod tą samą zmienną, z różnym indeksem. Ponadto ich liczba w tym języku może się stale zmieniać w bardzo prosty sposób. Każdy element tablicy ma swój niepowtarzalny adres, czyli indeks. Pozwala on odwoływać się do danej komórki tablicy oraz modyfikować i odczytywać jej wartość.

Zmienną tablicową należy zadeklarować w następujący sposób:

Tablica=new Array();

Można sprecyzować ilość elementów tablicy, ale nie jest to konieczne:

Tablica=new Array(100);

Wartości kolejnych zmiennych deklaruje się wraz z indeksem znajdującym się w kwadratowym nawiasie. Indeks jako swoją pierwszą wartość przyjmuje zawsze zero, co znaczy, że kolejne komórki tablicy są numerowane od liczby zero:

Tablica[0]="Mariusz";
Tablica[1]="Łukasz";
Tablica[2]="Mateusz";

Wartości te można też zapisać zaraz przy deklaracji obiektu new Array. Chcąc zadeklarować pierwszy element z indeksem równym jeden, trzeba wstawić komórkę zerową jako pustą: "". Wszystkie komórki oddzielane są przecinkiem.

Tablica=new Array("Mariusz", "Łukasz", "Mateusz")

A oto zastosowanie na przykładzie dziennego menu dnia w bardzo prostej wersji:

function Dzien()
{
 Posilek=new Array();
 Wszystko="";
 for (i=1; i<=5; i++)
 {
  Posilek[i]=prompt('Podaj 5 posiłków:\nPodaj posiłek nr.\t'+i,Posilek[i]);
  Wszystko+="\n"+i+". "+Posilek[i];
 }
  alert('Oto te posiłki:'+Wszystko);
}

Ważne, by pamiętać, że tablica zdefiniowana wewnątrz funkcji (tak jak w tej) nie będzie dostępna poza nią. Warto zatem zdefiniować obiekt Array przed funkcją, jeśli dostęp do niej ma być także poza nią. Wszystkie elementy tablicy rozdzielone przecinkami można wyświetlić za pomocą instrukcji:

document.write(Tablica};

Tablica jest obiektem, co powoduje czasem błędne do niego odwołanie. Oto przykład:

tab=new Array(2,3,4);
nowa=tab;
nowa[2]=5;

Wbrew oczekiwaniom niektórych użytkowników, zmienna nowa wskazuje na tem sam element pamięci co tab, co oznacza, że przedstawiona modyfikacja dotyczy tak naprawdę elementu tab. Zmienna nowa ma charakter pomocniczy i można by ją traktować jako wskaźnik na obiekt tab. Dzieje się tak dlatego, że nie zostało zadeklarowane nowe miejsce w pamięci przy pomocy słowa new.

Istnieje także możliwość stworzenia tablic o kilku indeksach. Pozwalają one na poruszanie się po obiektach w dwóch (lub więcej) wymiarach. Na przykład po tabeli według kolumny i wiersza. Aby stworzyć zmienną tablicową o dwóch indeksach, należy zdefiniować zmienną o jednym indeksie jako Array(), a następnie dla każdej komórki tej tablicy zarezerwować nowe miejsce w pamięci przy pomocy new:

Tablica=new Array(2);
Tablica[0]=new Array(4);
Tablica[1]=new Array(4);

Powyższy obiekt ma wymiary 2x4, ale nic nie stoi na przeszkodzie, by je szybko powiększyć:

Tablica[2]=new Array(4);

Odwoływanie się do nowej tablicy jest jak poniżej. Wartości dla x są z przedziału 0-1 a dla y 0-3. Im "głębsza" tablica tym indeks jej elementów jest bardziej na prawo. Tak więc kolejność ich występowania jest bardzo ważna.

Tablica[x][y];

A oto jak można szybko skonstruować tablicę wielowymiarową, w tym przypadku będzie to "sześcian":

Tablica=new Array(5);
for (i=1; i<=10; i++)
{
 Tablica[i]=new Array(5);
 for (j=1; j<=10; j++)
  Tablica[i][j]=new Array(5);
}

Zobacz przykład
Do góry