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