Úloha 2 – Dvourozměrné pole: přístup, změna a sčítání hodnot
Ú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řespole2D[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ímcopole2D[řádek][sloupec]konkrétní hodnotu. -
Tento princip se hodí pro maticové výpočty, tabulky dat i herní mapy.