Deklarowanie tablic wielowymiarowych

0

Jak zdefiniować tablice np. dwuwymiarową, gdy robię tak zmienna = [] wyskakuje błąd undefined przy próbie zmienna[0][0]='cos'

1

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]
];
0

to trochę lipa, muszę całość od początku pisać :P dzięki za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1