De filter methode
De methode filter maakt het mogelijk om
elementen van een array te filteren, waarbij alleen
de elementen worden behouden die aan een bepaalde
voorwaarde voldoen.
De methode ontvangt als parameter een functie, die
voor elk element van de array wordt uitgevoerd.
Als resultaat retourneert de methode een nieuwe
array, waarin alleen die elementen worden opgenomen
waarvoor de doorgegeven functie true retourneert.
Er kunnen drie parameters aan de functie worden doorgegeven. Als deze parameters aanwezig zijn (ze zijn niet verplicht), dan komt in de eerste automatisch het element van de array, in de tweede komt zijn nummer in de array (de index), en in de derde - de array zelf.
Syntaxis
let nieuweArray = array.filter(function(element, index, array) {
code
return true of false
});
Voorbeeld
Laten we een array filteren, waarbij we alleen positieve getallen behouden:
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);
Resultaat van de code-uitvoering:
[5, 1, 1, 3, 4]
Voorbeeld
Laten we de code verkorten door gebruik te maken van een pijlfunctie:
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);
Resultaat van de code-uitvoering:
[5, 1, 1, 3, 4]
Voorbeeld
Laten we de code verkorten door gebruik te maken van verkorting van logische bewerkingen:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => {
return elem >= 0;
});
console.log(res);
Resultaat van de code-uitvoering:
[5, 1, 1, 3, 4]
Voorbeeld
Laten we de code verkorten door gebruik te maken van eigenschappen van pijlfuncties:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => elem > 0);
console.log(res);
Resultaat van de code-uitvoering:
[5, 1, 1, 3, 4]
Voorbeeld
Indien nodig kan in de derde parameter de array zelf worden doorgegeven:
let res = arr.filter(function(elem, index, arr) {
hier is de array arr beschikbaar
});