[JS] tablice trójwymiarowe

0

Witam!
Chce stworzyć tablicę trójwymiarową, gdzie 2 pierwsze wymiary bedą oznaczały jakies pole konkretne (jak w szachach np) a 3 wymiar będzie taki sam dla niektórych miejsc (np takie same kolory). Problem moj jest w tym, że nie wiem jak zastosować 3-d tablice w JS zeby działała :/
Tak np tworzę tablice:

var tab = new Array(5);
        for (i=0; i<=5; i++)
        {
            tab[i] = new Array(5);
            
            for (j=0; j<=5; j++)
            {
                tab[i][j] = new Array(5);
                
            }
        }

I chcę coś wpisać do 2 wymiarów a pozniej do 3...

tab[0][0] = "2d z miejsca 0 0";
tab[0][0][0] = '3d z miejsca 0 0';
document.write("2D: "+ tab[0][0] +" \n 3D: "+ tab[0][0][0]);

Wyświetla:::

2D: 2d z miejsca 0 0
3D: 2

zamiast

2D: 2d z miejsca 0 0
3D: 3d z miejsca 0 0

Chodzi własnie o to, że trzeci wymiar jest tu traktowany jako miejsce z łańcucha w poprzednim, drugim, wymiarze. Wie ktoś dlaczego tak sie dzieje? Da się zrobić trójwymiarową tablicę w JS?

0
logan napisał(a)

tab[0][0] = "2d z miejsca 0 0";
tab[0][0][0] = '3d z miejsca 0 0';
document.write("2D: "+ tab[0][0] +" \n 3D: "+ tab[0][0][0]);

> Wyświetla:::
> 
> > 2D: 2d z miejsca 0 0
> > 3D: 2
> 
> zamiast
> 
> > 2D: 2d z miejsca 0 0
> > 3D: 3d z miejsca 0 0
> 
> 
> <b>Chodzi własnie o to, że trzeci wymiar jest tu traktowany jako miejsce z łańcucha w poprzednim, drugim, wymiarze. Wie ktoś dlaczego tak sie dzieje? Da się zrobić trójwymiarową tablicę w JS?</b>

Rozwiazanie jest bardzo proste. Nie da sie tak po prostu przypisac 
```php
tab[0][0] = 'a';

bo wtedy tworzy sie tablica 2-wymiarowa ktora juz jest tablica 2D wiec nie 3D.
tab[0][0][numer znaku ciagu] jest 0 znakiem z tablicy 2D
Nie mozna przechodzic z jednego wymiaru do drugiego. Jesli tablica ma 2 wymiary to nie mozesz odwolac sie do trzeciego wymiaru. Musisz ZAWSZE operowac na wszystkich 3 wymiarach jesli chcesz pojedyncze pola wyciagac.

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