aložte si obyčejnou stránku s JavaScriptem, bez Vite i bez JSX. Můžete použít následující kód (šablona html-css-js
nepoužívá Vite ani JSX):
npm init kodim-app@latest cviceni-zkracovaci-jednohubky html-css-js
Následující funkce přepište do zkráceného zápisu. Vlastními slovy popište, k čemu nejspíše funkce slouží.
-
const isEmail = (str) => { return str.includes('@'); };
-
const roll = () => { return Math.floor(Math.random() * 6) + 1; };
-
const getNumber = (id) => { return Number(document.querySelector(`#${id}`).value); };
-
const weather = (temperature) => { if (temperature > 16) { return 'teplo'; } return 'zima'; };
Nápověda: Použijte ternární operátor.
Založte si obyčejnou stránku s JavaScriptem, bez Vite i bez JSX:
npm init kodim-app@latest cviceni-opakovani-map html-css-js
Do souboru index.js
si zkopírujte následující pole.
const weekdays = [
'pondělí',
'úterý',
'středa',
'čtvrtek',
'pátek',
'sobota',
'neděle',
];
const months = [
{
name: 'leden',
days: 31,
},
{
name: 'únor',
days: 28,
},
{
name: 'březen',
days: 31,
},
{
name: 'duben',
days: 30,
},
{
name: 'květen',
days: 31,
},
{
name: 'červen',
days: 30,
},
{
name: 'červenec',
days: 31,
},
{
name: 'srpen',
days: 31,
},
{
name: 'září',
days: 30,
},
{
name: 'říjen',
days: 31,
},
{
name: 'listopad',
days: 30,
},
{
name: 'prosinec',
days: 31,
},
];
Všechny body níže vyřešte pomocí metody map
. Tam, kde je to možné, použijte zkrácený zápis funkcí. Výsledky vypisujte do konzole pomocí console.log
.
- Z pole
weekdays
vyrobte pole obsahující všechny názvy dnů napsané VELKÝMI PÍSMENY. - Z pole
weekdays
vyrobte pole obsahující pouze první dvě písmena každého dne, tedy['po', 'út', 'st' /* atd. */];
- Z pole
months
vyrobte pole obsahující pouze počty dní v každém měsíci. - Z pole
months
vyrobte pole obsahující pro každý měsíc datum jeho prvního dne v roce 2020, tedy['1. leden 2020', '1. únor 2020' /* atd. */];
- Založte si Vite/JSX projekt:
npm init kodim-app@latest cviceni-ceska-mesta jsx
- Do souboru
index.jsx
vložte mimo komponentu pole s názvy deseti největších českých měst.const cities = [ 'Praha', 'Brno', 'Ostrava', 'Plzeň', 'Liberec', 'Olomouc', 'České Budějovice', 'Hradec Králové', 'Ústí nad Labem', 'Pardubice', ];
- Z pole
cities
pomocí funkcemap
vyrobte pole JSX elementů. Každý JSX element nechť má následující strukturu.Výsledné pole uložte do proměnné<div className="city">Název města</div>
cityElements
. - Použijte pole
cityElements
uvnitř komponenty JSX a zobrazte jej tak na vaší stránce. - Zbavte se proměnné
cityElements
a funkcimap
použijte přímo uvnitř komponenty JSX. - V konzoli si JSX bude stěžovat, že chybí
key
prop. Máme však štěstí, jména měst jsou unikátní. Můžeme tak na nášdiv
přidat propkey
a do něj poslat přímo název města.
Pokračujte v projektu z předchozího příkladu.
- Do pole
cities
si uložte obsáhlejší data o českých městech.const cities = [ { name: 'Praha', population: 1324277, area: 496.21, }, { name: 'Brno', population: 381346, area: 230.18, }, { name: 'Ostrava', population: 287968, area: 214.23, }, { name: 'Plzeň', population: 174842, area: 137.67, }, { name: 'Liberec', population: 104802, area: 106.09, }, { name: 'Olomouc', population: 100663, area: 103.33, }, { name: 'České Budějovice', population: 94463, area: 55.6, }, { name: 'Hradec Králové', population: 92939, area: 105.69, }, { name: 'Ústí nad Labem', population: 92716, area: 93.97, }, { name: 'Pardubice', population: 91727, area: 82.66, }, ];
- Upravte kód vaší aplikace tak, aby u každého města zobrazoval kromě názvu také počet obyvatel a rozlohu v kilometrech.
- Jako
key
prop opět použijte název města. - Vytvořte komponentu
City
, jejímž úkolem bude zobrazovat jedno město. Tato komponenta bude mít propsname
,population
aarea
. Použijte komponentu k zobrazení každého města ze seznamu. - Pro komponentu
City
vytvořte vlastní složku a komponentu malinko nastylujte, aby vypadala hezky.