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
});

Pogledajte takođe

  • metode map i forEach,
    koje omogućavaju primenu funkcije na svaki element niza
  • metode some i every,
    koje vrše proveru niza
  • metode reduce i reduceRight,
    koje svode niz na jednu vrednost