Metóda filter
Metóda filter umožňuje filtrovať
prvky poľa, pričom ponechá len tie,
ktoré spĺňajú určitú podmienku.
Metóda ako parameter prijíma funkciu, ktorá
sa vykoná pre každý prvok poľa.
Výsledkom metódy je nové
pole, do ktorého vstúpia len tie prvky,
pre ktoré zadaná funkcia vráti true.
Do funkcie je možné odovzdať tri parametre. Ak tieto parametre existujú (nie sú povinné), tak do prvého sa automaticky dostane prvok poľa, do druhého sa dostane jeho číslo v poli (index) a do tretieho - samotné pole.
Syntax
let nové pole = pole.filter(function(prvok, index, pole) {
kód
return true alebo false
});
Príklad
Poďme prefiltrovať pole, ponechajme v ňom len 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ýsledok vykonania kódu:
[5, 1, 1, 3, 4]
Príklad
Skrátime kód využitím funkcie šíp:
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ýsledok vykonania kódu:
[5, 1, 1, 3, 4]
Príklad
Skrátime kód využitím skrátenia logických operácií:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => {
return elem >= 0;
});
console.log(res);
Výsledok vykonania kódu:
[5, 1, 1, 3, 4]
Príklad
Skrátime kód využitím vlastností funkcií šíp:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => elem > 0);
console.log(res);
Výsledok vykonania kódu:
[5, 1, 1, 3, 4]
Príklad
V prípade potreby je možné ako tretí parameter odovzdať samotné pole:
let res = arr.filter(function(elem, index, arr) {
tu bude dostupné pole arr
});