Metoda filter
Metoda filter omogoča filtriranje
elementov polja, tako da ohranimo le tiste elemente,
ki ustrezajo določenemu pogoju.
Metoda kot parameter prejme funkcijo, ki
se izvede za vsak element polja.
Kot rezultat metoda vrne novo
polje, ki bo vključevalo le tiste elemente,
za katere podana funkcija vrne true.
Funkciji lahko podamo tri parametre. Če ti parametri obstajajo (niso obvezni), potem bo prvi samodejno prejel element polja, drugi bo prejel njegovo številko v polju (indeks), tretji pa bo prejel samo polje.
Sintaksa
javascriptlet novoPolje = polje.filter(function(element, indeks, polje) {
koda
return true ali false
});
Primer
Filtrirajmo polje tako, da v njem ohranimo le pozitivna števila:
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);
Rezultat izvajanja kode:
javascript[5, 1, 1, 3, 4]
Primer
Skrajšajmo kodo z uporabo funkcije s puščico:
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);
Rezultat izvajanja kode:
javascript[5, 1, 1, 3, 4]
Primer
Skrajšajmo kodo z uporabo skrajšanja logičnih operacij:
javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => {
return elem >= 0;
});
console.log(res);
Rezultat izvajanja kode:
javascript[5, 1, 1, 3, 4]
Primer
Skrajšajmo kodo z uporabo značilnosti funkcij s puščico:
javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => elem > 0);
console.log(res);
Rezultat izvajanja kode:
javascript[5, 1, 1, 3, 4]
Primer
Po potrebi lahko v tretji parameter podamo polje samo:
javascriptlet res = arr.filter(function(elem, index, arr) {
tukaj bo polje arr dostopno
});