Úloha 3 – Tvorba, filtrování a vyhledávání v poli objektů
Úvod do úlohy
Jakmile si osvojíme základní způsoby procházení pole objektů pomocí cyklů (for, for…of, forEach), nastává čas seznámit se s moderními metodami polí. Ty nám umožňují zapsat operace nad celými kolekcemi stručněji, přehledněji a efektivněji – bez ručního psaní cyklů. Mezi nejčastější patří:
-
map()– vytvoří nové pole hodnot na základě transformace původního pole. -
filter()– vybere jen ty prvky, které splňují určitou podmínku. -
find()– najde a vrátí první prvek odpovídající podmínce.
Tyto metody jsou nesmírně užitečné při práci s daty – například když chceme získat seznam všech emailů, filtrovat uživatele podle věku nebo najít konkrétní položku podle jména.
Teorie a principy
-
map()
-
Vstup: pole objektů.
-
Výstup: nové pole, kde každý prvek vznikl transformací původního.
-
Typický příklad: získání všech hodnot určité vlastnosti.
-
-
filter()
-
Vstup: pole objektů.
-
Výstup: nové pole pouze s těmi prvky, které splňují danou podmínku.
-
Typický příklad: vybrat všechny studenty starší než 25 let.
-
-
find()
-
Vstup: pole objektů.
-
Výstup: první nalezený objekt, který odpovídá podmínce.
-
Typický příklad: najít uživatele se zadaným jménem.
-
Praktické příklady kódu
Typické chyby / záludnosti
-
Záměna metod:
-
map()vrací nové pole se stejnou délkou jako původní. -
filter()může vrátit méně prvků (nebo i prázdné pole). -
find()vrací jen jeden objekt, neboundefined.
-
-
Zapomenutí return uvnitř callback funkce – bez něj metoda nevrátí správné hodnoty.
-
Očekávání, že find() vrátí více výsledků – ne, vždy jen první nalezený. Pokud potřebujeme více, použijeme
filter(). -
Neúplná podmínka – studenti někdy zapomenou porovnávat konkrétní vlastnost (
student == "Eva"je špatně, správněstudent.name == "Eva").
Shrnutí
-
map()– transformuje pole objektů na pole hodnot (např. jen emaily). -
filter()– vybere podmnožinu objektů, které splňují podmínku. -
find()– vrátí první nalezený objekt podle podmínky. -
Všechny tři metody výrazně zjednodušují práci oproti ručnímu psaní cyklů.
-
Pozor na správné použití
returna rozdíly mezi metodami.