Úloha 1 – 2D pole v JavaScriptu: přístup, cykly, úpravy
Úvod do úlohy
Doposud jsme pracovali hlavně s poli, která obsahovala jednoduché hodnoty – čísla, texty nebo booleany. V praxi ale často potřebujeme reprezentovat složitější data, kde nám už obyčejný jednorozměrný seznam nestačí. JavaScriptové pole naštěstí není omezeno jen na „primitivní“ hodnoty, ale může uchovávat i jiná pole nebo dokonce objekty. Díky tomu můžeme jednoduše vytvářet víceúrovňové struktury, jako jsou tabulky, matice, databázové záznamy nebo třeba herní mapy.
Teorie a principy
-
Pole polí (dvourozměrná pole): Každý prvek pole může být zase polem. To nám umožní vytvořit strukturu připomínající tabulku s řádky a sloupci.
-
Pole objektů: Velmi častý způsob, jak organizovat data. Každý prvek pole je objekt s více vlastnostmi.
-
Kombinace: Pole může obsahovat různé typy – i objekty, i pole. To dává velkou flexibilitu, ale je potřeba myslet na čitelnost a konzistenci dat.
-
Indexování: U dvourozměrných polí se používají dva indexy – první určuje „řádek“, druhý „sloupec“.
Praktické příklady kódu
1. Pole polí – matice
2. Pole objektů – seznam studentů
3. Kombinace – herní mapa
Typické chyby / záludnosti
-
Záměna úrovní indexů: studenti často zapomenou, že u matice musíme psát
matice[řádek][sloupec]. -
Mix datových typů: do pole je možné uložit „cokoliv“, ale přílišná směsice (čísla, objekty, texty dohromady) může kód znepřehlednit.
-
Přístup k neexistující hodnotě: když použijeme nesprávný index, dostaneme
undefined. U složitějších struktur se to může stát snadno. -
Údržba dat: pokud pole obsahuje objekty, změna uvnitř objektu se projeví všude, kde na něj máme referenci.
Shrnutí
-
Pole nemusí obsahovat jen jednoduché hodnoty, ale i jiná pole nebo objekty.
-
Pole polí nám umožní reprezentovat matice nebo tabulky.
-
Pole objektů se hodí pro složitější záznamy (např. seznam studentů, produkty e-shopu).
-
Při práci je nutné dbát na správné indexování a konzistenci dat.
-
Tento přístup umožňuje modelovat i složitější scénáře, jako jsou herní mapy nebo databázové tabulky.