Metodi filter

Metodi filter mahdollistaa taulukon elementtien suodattamisen, jolloin vain tietylle ehdon täyttävät elementit jäävät jäljelle. Metodi saa parametrina funktion, joka suoritetaan jokaiselle taulukon elementille. Metodi palauttaa uuden taulukon, joka sisältää vain ne elementit, joille annettu funktio palauttaa true.

Funktiolle voidaan antaa kolme parametria. Jos nämä parametrit on annettu (ne eivät ole pakollisia), niin ensimmäiseen päätyy automaattisesti elementti taulukosta, toiseen sen numero taulukossa (indeksi), ja kolmanteen - itse taulukko.

Syntaksi

javascriptlet uusiTaulukko = taulukko.filter(function(elementti, indeksi, taulukko) {
  koodi
  return true tai false
});

Esimerkki

Suodatetaan taulukko jättäen siihen vain positiiviset numerot:

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

Koodin suorituksen tulos:

javascript[5, 1, 1, 3, 4]

Esimerkki

Lyhennetään koodia hyödyntämällä nuolifunktiota:

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

Koodin suorituksen tulos:

javascript[5, 1, 1, 3, 4]

Esimerkki

Lyhennetään koodia hyödyntämällä loogisten operaatioiden lyhennyksiä:

javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];

let res = arr.filter(elem => {
  return elem >= 0;
});

console.log(res);

Koodin suorituksen tulos:

javascript[5, 1, 1, 3, 4]

Esimerkki

Lyhennetään koodia hyödyntämällä nuolifunktioiden erityispiirteitä:

javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => elem > 0);

console.log(res);

Koodin suorituksen tulos:

javascript[5, 1, 1, 3, 4]

Esimerkki

Tarvittaessa kolmannelle parametrille voidaan antaa itse taulukko:

javascriptlet res = arr.filter(function(elem, index, arr) {
  tässä taulukko arr on käytettävissä
});

Katso myös

  • metodit map ja forEach,
    jotka mahdollistavat funktion soveltamisen jokaiselle taulukon elementille
  • metodit some ja every,
    joilla suoritetaan taulukon tarkistus
  • metodit reduce ja reduceRight,
    joilla taulukko lasketaan yhdeksi arvoksi