Javascript filter() Metodu
ES5
Dizideki öğeleri belirli bir koşula göre filtreler. Filtrelenen öğeler varsa geriye döndürülür, yoksa boş bir dizi geriye döner.
Yapısı (Syntax)array.filter(function(currentValue, index, arr), thisValue)
Parametreler
-
currentValueTest edilen elemanın değeri
-
indexTest edilen elemanın indis değeri
-
arrTest edilen elemanın ait olduğu dizi objesi
Dönen Değer
Koşula uyan öğeleri geriye döndürür.
Örnekler
Tüm küçük öğeleri filtrelemek
Aşağıdaki kod, değeri 10'dan büyük olan öğeleri filtreler.
function isBigEnough(value) {
return value > 10;
}
const filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
console.log(filtered); // [12, 130, 44]
Arrow fonksiyonlarla kullanımı
Arrow fonksiyonları aynı işlemin daha kısa yazılmasını sağlar.
const filtered_with_arrow = [12, 5, 8, 130, 44].filter(value => value > 10);
console.log(filtered_with_arrow); // [12, 130, 44]
Objelerin değerlerine göre filtrelemek
Aşağıdaki kod, dizi içindeki objelerin değerlerine göre filtreme yapar.
const users = [
{
name: "Tayfun Erbilen",
age: 27
},
{
name: "Mehmet Seven",
age: 27
},
{
name: "Batuhan Aydın",
age: 28
}
];
const filtered = users.filter(user => user.age === 27);
console.log(filtered);
Arama yapmak
Öğeler içinde arama yapmak içinde bu metod kullanılır.
const names = ['Tayfun', 'tarkan', 'tufan', 'mehmet', 'ahmet', 'hayko'];
const search = keyword => names.filter(name => name.toLowerCase().includes(keyword.toLowerCase()));
console.log(search('ay')); // ["Tayfun", "hayko"]