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
let 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:
let 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:
[5, 1, 1, 3, 4]
Příklad
Zkrátíme kód pomocí šipkové funkce:
let 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:
[5, 1, 1, 3, 4]
Příklad
Zkrátíme kód pomocí zkráceného vyhodnocování logických operací:
let 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:
[5, 1, 1, 3, 4]
Příklad
Zkrátíme kód využitím vlastností šipkových funkcí:
let 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:
[5, 1, 1, 3, 4]
Příklad
V případě potřeby lze do třetího parametru předat samotné pole:
let res = arr.filter(function(elem, index, arr) {
zde bude dostupné pole arr
});