filter Metodu

filter metodu, dizi elemanlarını filtreleyerek yalnızca belirli bir koşula uygun olanları bırakmanıza olanak tanır. Metot, parametre olarak her bir dizi elemanı için çalıştırılacak bir fonksiyon alır. Metot, kendi sonucu olarak, yalnızca iletilen fonksiyonun true döndürdüğü elemanların ekleneceği yeni bir dizi döndürür.

Fonksiyona üç parametre iletebilirsiniz. Bu parametreler mevcutsa (zorunlu değillerdir), ilkine otomatik olarak dizi elemanı, ikincisine dizideki numarası (indeks), üçüncüsüne ise dizinin kendisi yerleştirilir.

Sözdizimi

javascriptlet yeni dizi = dizi.filter(function(eleman, indeks, dizi) {
  kod
  return true veya false
});

Örnek

Diziyi filtreleyerek içinde yalnızca pozitif sayıları bırakalım:

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

Kodun çalıştırılma sonucu:

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

Örnek

Kodu, ok fonksiyonu kullanarak kısaltalım:

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

Kodun çalıştırılma sonucu:

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

Örnek

Kodu, mantıksal operatör kısayollarını kullanarak kısaltalım:

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

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

console.log(res);

Kodun çalıştırılma sonucu:

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

Örnek

Kodu, ok fonksiyonlarının özelliklerinden yararlanarak kısaltalım:

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

console.log(res);

Kodun çalıştırılma sonucu:

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

Örnek

Gerekirse, üçüncü parametreye dizinin kendisi iletilir:

javascriptlet res = arr.filter(function(elem, index, arr) {
  burada arr dizisine erişilebilir olacak
});

Ayrıca Bakınız

  • her bir dizi elemanına fonksiyon uygulamanıza izin veren map ve forEach metodları,
  • dizi kontrolü gerçekleştiren some ve every metodları,
  • diziyi tek bir değere indirgeyen reduce ve reduceRight metodları,