Metod filter
Metod filter omogućava filtriranje
elemenata niza, ostavljajući samo one elemente
koji zadovoljavaju određeni uslov.
Metod kao parametar prima funkciju, koja će
se izvršiti za svaki element niza.
Metod kao rezultat vraća novi
niz, u koji će ući samo oni elementi,
za koje prosleđena funkcija vraća true.
U funkciju se mogu proslediti tri parametra. Ako ovi parametri postoje (nisu obavezni), onda će u prvi automatski biti prosleđen element niza, u drugi će biti prosleđen njegov broj u nizu (indeks), a u treći - sam niz.
Sintaksa
javascriptlet noviNiz = niz.filter(function(element, index, niz) {
kod
return true ili false
});
Primer
Hajde da profiltriramo niz, ostavivši u njemu samo pozitivne brojeve:
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 izvršavanja koda:
javascript[5, 1, 1, 3, 4]
Primer
Skratićemo kod, koristeći streličastu funkciju:
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 izvršavanja koda:
javascript[5, 1, 1, 3, 4]
Primer
Skratićemo kod, koristeći skraćenje logičkih operacija:
javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => {
return elem >= 0;
});
console.log(res);
Rezultat izvršavanja koda:
javascript[5, 1, 1, 3, 4]
Primer
Skratićemo kod, koristeći osobine streličastih funkcija:
javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => elem > 0);
console.log(res);
Rezultat izvršavanja koda:
javascript[5, 1, 1, 3, 4]
Primer
Po potrebi se u treći parametar može proslediti sam niz:
javascriptlet res = arr.filter(function(elem, index, arr) {
ovde će biti dostupan niz arr
});