6

Funkcionální zpracování dat

Ukážeme si šikovné funkce pro práci s daty jako map a filter, a také takzvané destrukturování.

Funkcionální zpracování dat

Když při programování aplikací používáme cykly, brzy narazíme na často se opakující situace a konstrukce. Pro tyto situace máme na polích pomocné metody z funkcionálního světa.

  • Array.forEach
  • Array.map
  • Array.filter
  • Array.every
  • Array.some

Cvičení: Funkcionální zpracování dat

1

Funkcionální jednohubky

to dáš

Vytvořte si obyčejnou stránku s JavaScriptem a zkopírujte si do ní následující pole dat. Budeme s nimi pracovat v následujících cvičeních.

const numbers = [15, 6, 70, 41, 33, 27, 8, 16, 98, 60, 56];
const names = ['Petr', 'Jana', 'Pavel', 'Zuzana', 'Eva', 'Adam', 'Onyx'];
const osoby = [
  { name: 'Petr', age: 16, gender: 'male' },
  { name: 'Jana', age: 8, gender: 'female' },
  { name: 'Pavel', age: 34, gender: 'male' },
  { name: 'Zuzana', age: 41, gender: 'female' },
  { name: 'Eva', age: 13, gender: 'female' },
  { name: 'Adam', age: 22, gender: 'male' },
  { name: 'Adam', age: 22, gender: 'male' },
  { name: 'Onyx', age: 37, gender: 'intersex' },
];
  1. Napište cyklus, který spočítá průměr čísel v poli numbers. Napište tento cyklus ve staré formě for a v nové formě forEach.
  2. Pomocí funkce forEach napište cyklus, který vypíše do konzole poslední písmeno z každného jména v poli names.
  3. Pomocí metody map vydělte všecha čísla v poli numbers třemi.
  4. Pomocí metody map převeďte všechna čísla v poli numbers na řetězce.
  5. Pomocí metody map vytvořte pole, ve kterém budou všechna jména z pole names zabalená do li tagu. Jméno Petr tak dopadne jako <li>Petr</li>.
  6. Použijte pole osoby a pomocí metody map vytvořte pro každou osobu email ve formátu petr@gmail.com.
  7. Pomocí metody filter získejte z pole numbers pouze ta čísla, která jsou sudá.
  8. Pomocí metody filter získejte z pole names pouze ta jména, která jsou delší než 4 znaky.
  9. Pomocí metody filter získejte z pole osoby pouze dospělé lidi.
  10. Pomocí metody filter získejte z pole osoby pouze dospělé muže.
  11. Pomocí metody some zjistěte, jestli jsou v poli numbers nějaká čísla dělitelná 11.
  12. Pomocí metody every zjistěje, jestli v poli osoby platí, že každá osoba je vždy buď muž nebo žena.
2

Úkolníček

to dáš

Založte si JavaScriptový program a vložte do něj následujicí datovou strukturu představující seznam úkolů. Každý objekt obsahuje tyto položky

  • name - název úkolu,
  • due - za jak dlouho má být úkol splněn,
  • notify - jako dlouho předem se má úkol připomenout,
  • done - jestli už byl úkol splněn.

Nad datovou strukturou uvedenou výše proveďte následující úkony.

  1. Vytvořte pole, které obsahuje pouze názvy všech úkolů.
  2. Vytvořte pole, které obsahuje objekty pouze těch úkolů, které již byly splněny.
  3. Vytvořte pole, které obsahuje objekty pouze těch úkolů, které mají být splněný během následujících tří dnů.
  4. Máme-li pole úkolů, které mají být splněny do tří dnů, zjistěte, zda jsou všechny úkoly z tohoto seznamu již splněny.