Array.filter() fonksiyonu, dizi içindeki her elemanı belli bir niteliğe sahip olup olmadığını parametre olarak aktarılan fonksiyon aracılığıyla kontrol ederek, uyan elemanları yeni bir dizi olarak döndürürerek diziyi filtreler.
Array.filter() fonksiyonunu, desteklemeyen tarayıcılarda da kullanmak için Array.filter fonksiyon betiğini kullanabilirsiniz.
Sözdizimi
filtreli = Array.filter(filtreFonk [, thisElem])
filtreFonk | Dizi elemanlarının tek tek parametre olarak aktarılarak, kontrol edip true veya false değer döndürecek fonksiyonu belirler |
thisElem | Filtre fonksiyonu içinde this olarak kullanılacak nesneyi veya elementi belirler. |
Dönüş Değeri
filtreli | Filtrelenmiş Array döner. |
Kontrol Fonksiyonunun Yapısı ve Aktarılan Argümanlar
Array.filter() fonksiyonuna parametre olarak aktarılarak dizi elemanlarını filtreliyecek fonksiyonun genel yapısı aşağıdaki gibi olmalıdır. Fonksiyon içeriği, isteğe göre hazırlanması ile beraber mutlaka return ile true veya false değer döndürmelidir. Ayrıca, Array.filter() fonksiyonuna thisElem ile aktarılan nesne veya element, bu fonksiyon içinde this ile kullanılabilir.
fonk_Filter(eleman, sira, arrayRef) {
var sonuc;
// sonuc'u hesapla ...
return sonuc;
}
eleman | Dizinin güncel sırasındaki eleman. |
sira | Dizinin güncel sırası. |
arrayRef | Array nesnesinin referansı. |
Aşağıdaki örnek, Array.filter() fonksiyonu kullanılarak dizi içindeki sayıların hem 2'ye hem de 3'e tam bölünenlerin filtrelenmesini göstermektedir.
<script type="text/javascript">
function filter_Fonk(eleman, sira, arrayRef) {
if(eleman % 2 == 0 && eleman % 3 == 0)
return true;
else
return false;
}
function filterTest() {
var dizi = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14];
var filtreli = dizi.filter(filter_Fonk);
alert("Dizide 2 ve 3'e tam bölünebilen rakamlar : \n\n" + filtreli.join(", "));
}
</script>
<input type="button" value="2 ve 3'e Tam Bölünenleri Göster" onclick="filterTest()" />
Test Edin