zpět k lekci

Filtrace pomocí funkce

důležitost: 5

Pro pole máme vestavěnou metodu pole.filter(f), která filtruje všechny prvky pomocí funkce f. Jestliže f vrátí true, bude prvek vrácen ve výsledném poli.

Vytvořte sadu filtrů „připravených k použití“:

  • mezi(a, b) – mezi a a b nebo rovno některému z nich (inkluzívně).
  • vPoli([...]) – v zadaném poli.

Použití musí být následující:

  • pole.filter(mezi(3,6)) – vybere jen hodnoty mezi 3 a 6.
  • pole.filter(vPoli([1,2,3])) – vybere jen prvky, které se rovnají některému z prvků pole [1,2,3].

Například:

/* .. váš kód funkcí mezi a vPoli */
let pole = [1, 2, 3, 4, 5, 6, 7];

alert( pole.filter(mezi(3, 6)) ); // 3,4,5,6

alert( pole.filter(vPoli([1, 2, 10])) ); // 1,2

Otevřít pískoviště s testy.

Filtr mezi

function mezi(a, b) {
  return function(x) {
    return x >= a && x <= b;
  };
}

let pole = [1, 2, 3, 4, 5, 6, 7];
alert( pole.filter(mezi(3, 6)) ); // 3,4,5,6

Filtr vPoli

function vPoli(pole) {
  return function(x) {
    return pole.includes(x);
  };
}

let pole = [1, 2, 3, 4, 5, 6, 7];
alert( pole.filter(vPoli([1, 2, 10])) ); // 1,2

Otevřít řešení s testy na pískovišti.