Ú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, nebo undefined.

  • 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í return a rozdíly mezi metodami.