Metoden filter

Metoden filter giver mulighed for at filtrere elementer i et array, så kun de elementer, der opfylder en bestemt betingelse, beholdes. Metoden modtager en funktion som parameter, som vil blive udført for hvert element i arrayet. Metoden returnerer et nyt array som resultat, hvor kun de elementer, for hvilke den overførte funktion returnerer true, vil blive inkluderet.

Tre parametre kan overføres til funktionen. Hvis disse parametre er til stede (de er ikke obligatoriske), så vil den første automatisk modtage elementet i arrayet, den anden vil modtage dets nummer i arrayet (index), og den tredje - selve arrayet.

Syntaks

javascriptlet nytArray = array.filter(function(element, index, array) {
  kode
  return true eller false
});

Eksempel

Lad os filtrere arrayet, så kun positive tal bliver tilbage:

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

Resultatet af udførelsen af koden:

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

Eksempel

Lad os forkorte koden ved at bruge pilfunktioner:

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

Resultatet af udførelsen af koden:

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

Eksempel

Lad os forkorte koden ved at bruge forkortelse af logiske operationer:

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

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

console.log(res);

Resultatet af udførelsen af koden:

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

Eksempel

Lad os forkorte koden ved at udnytte egenskaberne ved pilfunktioner:

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

console.log(res);

Resultatet af udførelsen af koden:

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

Eksempel

Hvis nødvendigt, kan selve arrayet overføres som den tredje parameter:

javascriptlet res = arr.filter(function(elem, index, arr) {
  arrayet arr vil være tilgængeligt her
});

Se også

  • metoderne map og forEach,
    som giver mulighed for at anvende en funktion på hvert element i arrayet
  • metoderne some og every,
    der udfører kontrol af arrayet
  • metoderne reduce og reduceRight,
    der reducerer arrayet til en enkelt værdi