Metoda filter
Metoda filter umožňuje filtrovat
prvky pole a ponechat pouze ty,
které vyhovují určité podmínce.
Metoda obdrží v parametru funkci, která
se provede pro každý prvek pole.
Výsledkem metody je nové
pole, do kterého vstoupí pouze ty prvky,
pro které předaná funkce vrátí true.
Do funkce lze předat tři parametry. Pokud tyto parametry existují (nejsou povinné), tak do prvního bude automaticky dosazen prvek pole, do druhého bude dosazeno jeho číslo v poli (index) a do třetího - samotné pole.
Syntaxe
javascriptlet nové pole = pole.filter(function(prvek, index, pole) {
kód
return true nebo false
});
Příklad
Pojďme filtrovat pole a ponechat v něm pouze kladná čísla:
javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(function(elem) {
if (elem >= 0) {
return true;
} else {
return false;
}
});
console.log(res);
Výsledek provedení kódu:
javascript[5, 1, 1, 3, 4]
Příklad
Zkrátíme kód pomocí šipkové funkce:
javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => {
if (elem >= 0) {
return true;
} else {
return false;
}
});
console.log(res);
Výsledek provedení kódu:
javascript[5, 1, 1, 3, 4]
Příklad
Zkrátíme kód pomocí zkráceného vyhodnocování logických operací:
javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => {
return elem >= 0;
});
console.log(res);
Výsledek provedení kódu:
javascript[5, 1, 1, 3, 4]
Příklad
Zkrátíme kód využitím vlastností šipkových funkcí:
javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => elem > 0);
console.log(res);
Výsledek provedení kódu:
javascript[5, 1, 1, 3, 4]
Příklad
V případě potřeby lze do třetího parametru předat samotné pole:
javascriptlet res = arr.filter(function(elem, index, arr) {
zde bude dostupné pole arr
});