Metoda filter

Metoda filter pozwala przefiltrować elementy tablicy, pozostawiając tylko pasujące do określonego warunku elementy. Metoda w parametrze otrzymuje funkcję, która wykona się dla każdego elementu tablicy. Swoim wynikiem metoda zwraca nową tablicę, do której wejdą tylko te elementy, dla których przekazana funkcja zwróci true.

Do funkcji można przekazywać trzy parametry. Jeśli te parametry istnieją (nie są obowiązkowe), to do pierwszego automatycznie trafi element tablicy, do drugiego trafi jego numer w tablicy (indeks), a do trzeciego - sama tablica.

Składnia

javascriptlet nowaTablica = tablica.filter(function(element, index, tablica) {
  kod
  return true lub false
});

Przykład

Przefiltrujmy tablicę, pozostawiając w niej tylko dodatnie liczby:

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

Wynik wykonania kodu:

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

Przykład

Skróćmy kod, korzystając z funkcji strzałkowej:

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

Wynik wykonania kodu:

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

Przykład

Skróćmy kod, korzystając z skrócenia operacji logicznych:

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

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

console.log(res);

Wynik wykonania kodu:

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

Przykład

Skróćmy kod, korzystając z cech funkcji strzałkowych:

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

console.log(res);

Wynik wykonania kodu:

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

Przykład

W razie potrzeby do trzeciego parametru można przekazać samą tablicę:

javascriptlet res = arr.filter(function(elem, index, arr) {
  tutaj będzie dostępna tablica arr
});

Zobacz też

  • metody map i forEach,
    które pozwalają zastosować funkcję do każdego elementu tablicy
  • metody some i every,
    wykonujące sprawdzenie tablicy
  • metody reduce i reduceRight,
    zwijające tablicę do jednej wartości