Úloha 3 – Zpracování a výpis dat z 2D pole
Úvod do úlohy
Teoreticky už víme, že dvourozměrné pole je pole, které obsahuje další pole. Teď se podíváme na praktické příklady, kde tato struktura opravdu pomáhá. Typickou ukázkou je tabulka nebo matice – například malá násobilka, tabulka výsledků nebo herní mapa. Abychom mohli všechny prvky takové struktury pohodlně projít, použijeme vnořené cykly: první cyklus projde řádky a druhý cyklus projde prvky uvnitř řádku (sloupce). Studenti si také vyzkouší práci s „nerovnoměrnými“ daty, kdy každý řádek může mít jiný počet prvků.
Teorie a principy
-
Vnořený cyklus: dva cykly
forza sebou – vnější pro řádky, vnitřní pro sloupce. -
Výpis tabulky: do konzole můžeme výpis spojovat do řádků pomocí
join(). Na webové stránce použijeme<br>pro zalomení. -
Nerovnoměrná data: v JavaScriptu není nutné, aby všechny řádky měly stejnou délku. Proto je bezpečnější použít
pole[i].lengthmísto pevného čísla.
Praktické příklady kódu
1. Malá násobilka (4×4 tabulka)
2. Výpis matice na webovou stránku
3. Nerovnoměrná data – různé délky řádků
Typické chyby / záludnosti
-
Pevné číslo místo
length: studenti někdy zapomenou, že každý řádek může mít jinou délku, a místodata[i].lengthpoužijí pevný limit. -
Prohození indexů: snadno se zamění pořadí
[řádek][sloupec]. -
Nevhodný výpis: při
console.log(matice[i])dostaneme celý řádek jako pole, pro hezký formát je vhodné použítjoin(" "). -
Zapomenuté zalomení: při výpisu do HTML je nutné přidat
<br>nebo jiný prvek pro nový řádek.
Shrnutí
-
Dvourozměrná pole se hodí pro reprezentaci tabulek, matic a složitějších dat.
-
Vnořený cyklus umožňuje projít všechny řádky i sloupce.
-
join()usnadňuje převod řádku na hezký text. -
Nerovnoměrná data nejsou problém – proto vždy používej
data[i].length. -
Výstup lze směřovat jak do konzole, tak na webovou stránku.