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

javascriptlet nieuweArray = array.filter(function(element, index, array) {
  code
  return true of false
});

Voorbeeld

Laten we een array filteren, waarbij we alleen positieve getallen behouden:

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

Resultaat van de code-uitvoering:

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

Voorbeeld

Laten we de code verkorten door gebruik te maken van een pijlfunctie:

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

Resultaat van de code-uitvoering:

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

Voorbeeld

Laten we de code verkorten door gebruik te maken van verkorting van logische bewerkingen:

javascriptlet 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:

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

Voorbeeld

Laten we de code verkorten door gebruik te maken van eigenschappen van pijlfuncties:

javascriptlet 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:

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

Voorbeeld

Indien nodig kan in de derde parameter de array zelf worden doorgegeven:

javascriptlet res = arr.filter(function(elem, index, arr) {
  hier is de array arr beschikbaar
});

Zie ook

  • de methoden map en forEach,
    die het mogelijk maken om een functie op elk element van de array toe te passen
  • de methoden some en every,
    die een controle op de array uitvoeren
  • de methoden reduce en reduceRight,
    die een array tot een enkele waarde reduceren