Jak zdefiniować tablice np. dwuwymiarową, gdy robię tak zmienna = [] wyskakuje błąd undefined przy próbie zmienna[0][0]='cos'
W JavaScripcie nie ma tablic dwuwymiarowych, ale możesz stworzyć tablicę tablic, co daje w praktyce coś w rodzaju tablicy dwuwymiarowej. Musisz jednak znać z góry jeden wymiar, ten pierwszy.
Żeby zadeklarować tablicę 2x2 z następującymi elementami:
11 12
21 22
31 32
wystarczy napisać taki kod:
var tablica = [ [11, 12], [21, 22], [31, 32] ];
Możesz łatwo napisać funkcję, która stworzy pustą "tablicę dwuwymiarową" o n
wierszach:
function tablica_dwuwymiarowa(liczba_wierszy) {
var tab = new Array(liczba_wierszy);
for (var i = 0; i < liczba_wierszy; i++) {
tab[i] = [];
}
return tab;
}
// użycie
var tab2d = tablica_dwuwymiarowa(3);
tab2d[0][0] = 11;
tab2d[0][1] = 12;
tab2d[1][0] = 21;
tab2d[1][1] = 22;
tab2d[2][0] = 31;
tab2d[2][1] = 32;
Zauważ jednak, że jeśli chcesz stworzyć tablicę o znanych elementach, to lepiej było to zrobić za pomocą zagnieżdżonych literałów []
, tak jak pokazałem w pierwszym przykładzie.
Zauważ też, że nic nie stoi na przeszkodzie, by tablica była krzywa, tzn. miała N "wierszy", ale każdy wiersz miał różną liczbę "kolumn".
Np. możemy stworzyć "krzywą" tablicę tablic z następującymi wartościami:
11
21 22
31 32 33
takim kodem:
var tab = [
[11],
[21, 22],
[31, 32, 33]
];
to trochę lipa, muszę całość od początku pisać :P dzięki za pomoc