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