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
let nowaTablica = tablica.filter(function(element, index, tablica) {
kod
return true lub false
});
Przykład
Przefiltrujmy tablicę, pozostawiając w niej tylko dodatnie liczby:
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);
Wynik wykonania kodu:
[5, 1, 1, 3, 4]
Przykład
Skróćmy kod, korzystając z funkcji strzałkowej:
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);
Wynik wykonania kodu:
[5, 1, 1, 3, 4]
Przykład
Skróćmy kod, korzystając z skrócenia operacji logicznych:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => {
return elem >= 0;
});
console.log(res);
Wynik wykonania kodu:
[5, 1, 1, 3, 4]
Przykład
Skróćmy kod, korzystając z cech funkcji strzałkowych:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => elem > 0);
console.log(res);
Wynik wykonania kodu:
[5, 1, 1, 3, 4]
Przykład
W razie potrzeby do trzeciego parametru można przekazać samą tablicę:
let res = arr.filter(function(elem, index, arr) {
tutaj będzie dostępna tablica arr
});