Úvod do úlohy

Jednorozměrná pole jsme už zvládli – jsou to jednoduše seznamy hodnot za sebou. V praxi ale často potřebujeme pracovat s daty, která mají dvě rozměrové osy – například tabulku čísel, matici nebo mapu herního prostředí. K tomu se v JavaScriptu používají dvourozměrná pole, tedy pole, které obsahuje další pole. Každý prvek v „hlavním poli“ je tedy samostatný řádek, a uvnitř něj jsou hodnoty (sloupce).

Důležité je si uvědomit, že i u dvourozměrných polí platí pravidlo indexování od nuly – první řádek má index 0, první sloupec také 0. K přístupu ke konkrétní hodnotě proto musíme použít dva indexy: jeden pro řádek a druhý pro sloupec, ve tvaru pole[radek][sloupec].

Teorie a principy

  • Deklarace: dvourozměrné pole zapisujeme jako pole, jehož prvky jsou další pole.

  • Indexování: první index vybírá řádek, druhý index vybírá konkrétní prvek v daném řádku.

  • Přehlednost: pro čitelnost se často zapisují do více řádků s odsazením.

  • Porovnání s jednorozměrným polem: zatímco pole[2] vrátí přímo prvek, pole2D[2] vrátí celý řádek (pole). Ke konkrétní hodnotě se dostaneme až přes pole2D[2][sloupec].

Praktické příklady kódu

1. Deklarace dvourozměrného pole

2. Přístup k prvkům

3. Porovnání s jednorozměrným polem

Typické chyby / záludnosti

  • Záměna indexů: studenti často prohodí řádek a sloupec – zapisují matice[sloupec][řádek] místo správného pořadí.

  • Zapomenutí, že indexy začínají od nuly: matice[1][1] není „první řádek a první sloupec“, ale druhý řádek a druhý sloupec.

  • Neporozumění návratové hodnotě: když zavoláme jen matice[1], dostaneme celé pole [4, 5, 6], nikoliv jednu hodnotu.

  • Nesymetrická data: v JavaScriptu může mít každý řádek jiný počet prvků, proto musíme dávat pozor při přístupu na konkrétní index.

Shrnutí

  • Dvourozměrné pole = pole polí (tabulka).

  • Přístup k hodnotě probíhá přes dva indexy: pole[řádek][sloupec].

  • Indexování vždy začíná od nuly – jak u řádků, tak u sloupců.

  • pole2D[řádek] vrátí celý řádek, zatímco pole2D[řádek][sloupec] konkrétní hodnotu.

  • Tento princip se hodí pro maticové výpočty, tabulky dat i herní mapy.