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
let novoPolje = polje.filter(function(element, indeks, polje) {
koda
return true ali false
});
Primer
Filtrirajmo polje tako, da v njem ohranimo le pozitivna števila:
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);
Rezultat izvajanja kode:
[5, 1, 1, 3, 4]
Primer
Skrajšajmo kodo z uporabo funkcije s puščico:
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);
Rezultat izvajanja kode:
[5, 1, 1, 3, 4]
Primer
Skrajšajmo kodo z uporabo skrajšanja logičnih operacij:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => {
return elem >= 0;
});
console.log(res);
Rezultat izvajanja kode:
[5, 1, 1, 3, 4]
Primer
Skrajšajmo kodo z uporabo značilnosti funkcij s puščico:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => elem > 0);
console.log(res);
Rezultat izvajanja kode:
[5, 1, 1, 3, 4]
Primer
Po potrebi lahko v tretji parameter podamo polje samo:
let res = arr.filter(function(elem, index, arr) {
tukaj bo polje arr dostopno
});