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
let noviNiz = niz.filter(function(element, index, niz) {
kod
return true ili false
});
Primer
Hajde da profiltriramo niz, ostavivši u njemu samo pozitivne brojeve:
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 izvršavanja koda:
[5, 1, 1, 3, 4]
Primer
Skratićemo kod, koristeći streličastu funkciju:
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 izvršavanja koda:
[5, 1, 1, 3, 4]
Primer
Skratićemo kod, koristeći skraćenje logičkih operacija:
let 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:
[5, 1, 1, 3, 4]
Primer
Skratićemo kod, koristeći osobine streličastih funkcija:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => elem > 0);
console.log(res);
Rezultat izvršavanja koda:
[5, 1, 1, 3, 4]
Primer
Po potrebi se u treći parametar može proslediti sam niz:
let res = arr.filter(function(elem, index, arr) {
ovde će biti dostupan niz arr
});