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
javascriptlet 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:
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ýsledok vykonania kódu:
javascript[5, 1, 1, 3, 4]
Príklad
Skrátime kód využitím funkcie šíp:
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ýsledok vykonania kódu:
javascript[5, 1, 1, 3, 4]
Príklad
Skrátime kód využitím skrátenia logických operácií:
javascriptlet 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:
javascript[5, 1, 1, 3, 4]
Príklad
Skrátime kód využitím vlastností funkcií šíp:
javascriptlet 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:
javascript[5, 1, 1, 3, 4]
Príklad
V prípade potreby je možné ako tretí parameter odovzdať samotné pole:
javascriptlet res = arr.filter(function(elem, index, arr) {
tu bude dostupné pole arr
});