Tablice
Typ tablicowy pozwala na przechowywanie dużej ilości danych typu zorganizowanych pod jedną nazwą.
Dane mogą być różnych typów. Numeracja komórek zaczyna się od zera.
Tworzenie tablic
|
var nazwa_tablicy = []; tworzy tablicę pustą:
1 |
|
2 |
|
3 |
var tab_liczb = [1, ,2, ,3]; tworzy tablicę:
1 |
'Jasio' |
2 |
var tab_miesz = [1, 'Jasio' ,2]; tworzy tablicę:
|
|
|
|
|
var tab_pusta = [ , , , , ]; tworzy tablicę 5-elementową:
Słowo var nie musi wystąpić.
W rzeczywistości tablice są obiektami, więc dla tablicy Tab można skorzystać z metody Tab.length, która daje liczbę komórek tablicy Tab.
Kod:
var tab_liczb = [1, ,2, ,3];
document.write(tab_liczb.length);
spowoduje wydruk aktualnego rozmiaru tablicy, czyli 5.
Dostęp do elementów tablicy zapewniony jest przez wyrażenie: nazwa_tablicy[ index].
Można więc zastosować kod1:
var tab = []; // bez podania rozmiaru, bo var tab = [5] oznacza tablicę 1-elementową: tab[0] = 5
for(i=0; i < 5; i++) tab[i] = i*i;
for(i=0; i < 5; i++) document.write(i + ' ' + tab[i] +'<BR>');
Rozmiar tablicy będzie się zwiększał wraz z dodawaniem do niej kolejnych wartości.
Tablice jako obiekty
Tablice, jako obiekty języka JavaScript mogą być tworzone jako zmienne typu obiektowego, więc przez użycie konstruktora Array()
|
var nazwa_tablicy = new Array(); tworzy tablicę pustą:
1 |
'Jasio' |
2 |
var tab_miesz = new Array(1, 'Jasio' ,2); tworzy tablicę mieszaną:
|
|
|
|
|
var tab_pusta = new Array( 5 ); tworzy tablicę 5-elementową:
Słowa var i new nie muszą wystąpić.
Można więc zastosować analogiczny do kodu1:
var tab = new Array(5); // działa także bez słowa new, np.: var tab = Array(5);
for(i=0; i<tab.length; i++) tab[i] = i*i;
for(i=0; i<tab.length; i++) document.write(i + " " + tab[i] + '<BR>');
Metody obiektu Array
Metoda |
Przykład |
Opis |
concat |
var tab1 = Array(1,2); var tab2 = Array(3,4,5); var tab3 = Array(); tab3 = tab1.concat(tab2); for(i=0; i<tab3.length; i++) document.write(tab3[i] + ' '); |
Zwraca tablicę będącą połączeniem dwóch tablic. tab3=[1,2,3,4,5] Wydruk: 1 2 3 4 5 |
join |
var tab = Array(1,2,3); var x = tab.join('+'); document.write(x); |
Zwraca napis będący połączeniem wszystkich elementów tablicy rozdzielonych separatorem, który jest parametrem wywołania. Domyślnym separatorem jest przecinek. Wydruk: 1+2+3 |
pop |
var tab = Array(1,3,5,7,9); x = tab.pop(); document.write ('Ostatni :' + x +' <BR>' ); document.write ('Zostało :' + tab.length); |
Zwraca ostatni element tablicy i jednocześnie zmniejsza tablicę o tę komórkę. Wydruk: Ostatni :9 Zostało :4 |
push |
var tab = Array(1,3,5,7,9); for(i=0; i<tab.length; i++) document.write(tab[i]); |
Dodaje na końcu tablicy nowy element.
Wydruk: |
reverse |
var tab = Array(1,3,5,7,9); for(i=0; i<tab.length; i++) document.write(tab[i]); |
Odwraca kolejność komórek tablicy.
Wydruk: |
shift |
var tab = Array(1,3,5,7,9); x = tab.shift(); document.write ('Pierwszy :' + x +' <BR>' ); document.write ('Zostało :' + tab.length); |
Zwraca pierwszy element tablicy i jednocześnie zmniejsza tablicę o tę komórkę. Wydruk: Pierwszy :1 Zostało :4 |
slice
t.slice(s,e) t.slice(s) |
var tab1 = Array(0,1,2,3,4,5,6,7,8,9); var tab2 = Array(); pocz = 3; kon = 7; tab2 = tab1.slice(pocz, kon); for(i=0; i<tab2.length;i++) document.write(tab2[i]); |
Zwraca nową tablicę zawierającą elementy od indeksu start do indeksu end tablicy źródłowej. Brak parametru end oznacza sięgnięcie aż do ostatniej komórki. Wydruk: 3456 Uwaga! tab.slice(x, x+1) zwraca jeden element, tab.slice(x, x) nie zwraca żadnego elementu |
sort t.sort() t.sort(fun) |
var tab = Array(5,3,1,7,9); tab.sort(); for(i=0; i < tab.length; i++) document.write(tab[i]); |
Sortuje elementy tablicy rosnąco lub zgodnie z funkcją porównującą dwa elementy Wydruk: 13579 |
splice
tab.splice |
var tab = Array(0,1,2,3,4,5,6,7,8,9); pierwszy = 3; // pierwszy usuwany ile = 5; // ile do usunięcia tab.splice(pierwszy, ile); for(i=0; i < tab.length; i++) document.write(tab[i]); |
Usuwa z tablicy N elementów począwszy od elementu P . Wydruk: 01289 * Istnieje opcja zastąpienia elementów usuwanych innymi, podanymi jako kolejne parametry np. tab.splice(3, 5, 'a', 'b', 'c', 'd', 'e'); |
toString |
var x = tab.toString(); |
Działa identycznie jak tab.join() |
unshift |
var tab = Array(1,2,3,4,5); var x=7; tab.unshift(x); for(i=0; i < tab.length; i++) document.write(tab[i]); |
Wstawia element na początku tablicy zwiększając tablicę o 1 komórkę. Wydruk: 712345 |
Usuwanie wartości
Aby usunąć zawartość danej komórki tablicy, należy przypisać jej wartość null:
nazwa_tablicy[indeks] = null; lub też pusty ciąg znaków:
nazwa_tablicy[indeks] = "";
np.: tablica[0] = null;
tablica[5] = "";
Usunięcie całej komórki z tablicy można przeprowadzić używając operatora delete:
delete nazwa_tablicy[indeks];
np.:
delete tablica[5];