Funkce vyššího řádu (Higher-order function)

AndreaAndrea

Funkce v JS mohou mít jiné funkce jako parametry a stejně tak mohou být funkce jako výstup z jiné funkce. Funkce, která provádí obě tyhle věci se nazývá funkce vyššího řádu. Tedy pracujeme s funkcemi jako s jakýmikoliv jinými hodnotami.

Higher-order funkce jsou užitenčné k implementaci různých technik, jako je například mapování, redukce nebo filtrování seznamů (v JS pole), a k předávání funkcí jako hodnoty do jiných funkcí.

Výhody Funkcí vyššího řádu

Tyto funkce jsou velmi užitečné pro zjednodušení kódu a poskytují nám více abstrakce a flexibility při vývoji. Umožňují nám sdílet logiku, což snižuje redundanci a zlepšuje čitelnost kódu. Můžeme díky nim provést složité úlohy s menším množstvím kódu, což usnadňuje čtení a porozumění kódu.

Práce s cykly

Můžeme si funkcemi vyššího řádu výrazně zjednodušit práci s cykly a iteracemi. Jak?

Pokud máme pole, tak namísto toho, aby jsme iterovali cyklem (for, while nebo do) pomocí indexů jednotlivé prvky pole, tak napíšeme jen logiku - funkci, která se aplikuje přímo na každý prvek pole.

Mapování

Tipickým příkladem je funkce map, která vytvoří nový seznam aplikací dané funkce na každém prvku původního seznamu.

Tato funkce přijímá anonymní funkci jako parametr a v rámci funkce se aplikuje na každý prvek v seznamu.

const numbers = [1, 2, 3, 4, 5];
const doubledNumbers = numbers.map(x => x * 2);