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
let uusiTaulukko = taulukko.filter(function(elementti, indeksi, taulukko) {
koodi
return true tai false
});
Esimerkki
Suodatetaan taulukko jättäen siihen vain positiiviset numerot:
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);
Koodin suorituksen tulos:
[5, 1, 1, 3, 4]
Esimerkki
Lyhennetään koodia hyödyntämällä nuolifunktiota:
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);
Koodin suorituksen tulos:
[5, 1, 1, 3, 4]
Esimerkki
Lyhennetään koodia hyödyntämällä loogisten operaatioiden lyhennyksiä:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => {
return elem >= 0;
});
console.log(res);
Koodin suorituksen tulos:
[5, 1, 1, 3, 4]
Esimerkki
Lyhennetään koodia hyödyntämällä nuolifunktioiden erityispiirteitä:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => elem > 0);
console.log(res);
Koodin suorituksen tulos:
[5, 1, 1, 3, 4]
Esimerkki
Tarvittaessa kolmannelle parametrille voidaan antaa itse taulukko:
let res = arr.filter(function(elem, index, arr) {
tässä taulukko arr on käytettävissä
});