Programlamada, özellikle JavaScript’te çalışırken, elimizde bir dizi (array) olduğunda bu dizideki elemanlarla bazı testler yapmak isteriz. Örneğin bir listedeki tüm ürünlerin stokta olup olmadığını kontrol etmek ya da en az bir ürünün indirimde olup olmadığını öğrenmek gibi.
İşte bu tür durumlarda, JavaScript bize iki pratik yöntem sunar: every()
ve some()
.
Bu iki metodun temel amacı şudur:
Bir dizideki öğelerin bir koşulu sağlayıp sağlamadığını test etmek.
Ama bunu yaparken farklı sorular sorarlar:
every()
: Tüm elemanlar bu kurala uyuyor mu?
some()
: En az bir eleman bu kurala uyuyor mu?
Bu iki metot, sonuç olarak Boolean bir değer döner: ya true
ya da false
. Şimdi bu metotları detaylıca inceleyelim.
1. every()
Metodu: “Hepsi mi?”
Tanım:
every()
metodu, bir dizideki tüm elemanların belirli bir koşulu sağlayıp sağlamadığını kontrol eder. Eğer tüm elemanlar koşulu sağlıyorsa, sonuç true
olur. Ama bir tanesi bile sağlamıyorsa, sonuç false
döner.
Kullanımı:
dizi.every(function(eleman) {
// Şart buraya yazılır
});
Örnek:
Bir okulda düzenlenen etkinlik için öğrencilerin velilerinden izin kağıdı getirmesi gerekiyor. İzin kağıtları gelmiş mi, hepsine bakalım.
const izinDurumlari = [true, true, true, true];
const herkesGetirdiMi = izinDurumlari.every(function (durum) {
return durum === true;
});
console.log(herkesGetirdiMi); // true
Bu durumda, tüm öğrenciler izin kağıdını getirdiği için sonuç true
olur.
Şimdi bir öğrenci getirmemiş olsun:
const izinDurumlari = [true, true, false, true];
const herkesGetirdiMi = izinDurumlari.every(function (durum) {
return durum === true;
});
console.log(herkesGetirdiMi); // false
Bir kişi bile getirmediğinde sonuç false
döner.
Gerçek Hayattan Bir Senaryo:
Bir e-ticaret sitesinde satılan ürünlerin hepsi “stokta” mı?
const urunler = [
{ ad: "Laptop", stok: 12 },
{ ad: "Klavye", stok: 5 },
{ ad: "Mouse", stok: 8 },
];
const hepsiStoktaMi = urunler.every(function (urun) {
return urun.stok > 0;
});
console.log(hepsiStoktaMi); // true
Ama bir ürün tükenmişse:
const urunler = [
{ ad: "Laptop", stok: 12 },
{ ad: "Klavye", stok: 0 },
{ ad: "Mouse", stok: 8 },
];
const hepsiStoktaMi = urunler.every(function (urun) {
return urun.stok > 0;
});
console.log(hepsiStoktaMi); // false
2. some()
Metodu: “En az biri mi?”
Tanım:
some()
metodu, dizideki en az bir elemanın verilen koşulu sağlayıp sağlamadığını kontrol eder. Eğer bir tane bile koşulu sağlıyorsa, sonuç true
olur. Hiçbiri sağlamıyorsa false
döner.
Kullanımı:
dizi.some(function(eleman) {
// Şart buraya yazılır
});
Örnek:
Bir arkadaş grubunda kimlerin ehliyeti olduğunu kontrol edelim:
const ehliyetDurumlari = [false, false, true, false];
const birisiEhliyetliMi = ehliyetDurumlari.some(function (durum) {
return durum === true;
});
console.log(birisiEhliyetliMi); // true
Bir kişi bile ehliyetliyse sonuç true
olur.
Ama herkes ehliyetsizse:
const ehliyetDurumlari = [false, false, false, false];
const birisiEhliyetliMi = ehliyetDurumlari.some(function (durum) {
return durum === true;
});
console.log(birisiEhliyetliMi); // false
Gerçek Hayattan Bir Senaryo:
Bir kitaplıkta en az bir kitabın sayfa sayısı 500’den fazla mı?
const kitaplar = [
{ ad: "Simyacı", sayfa: 190 },
{ ad: "Kürk Mantolu Madonna", sayfa: 160 },
{ ad: "Savaş ve Barış", sayfa: 1225 },
];
const uzunKitapVarMi = kitaplar.some(function (kitap) {
return kitap.sayfa > 500;
});
console.log(uzunKitapVarMi); // true
Karşılaştırmalı Tablo:
Metot | Ne Yapar? | Ne Zaman true Döner? |
every() | Tüm elemanlar koşulu sağlıyor mu kontrol eder | Tüm elemanlar koşulu sağlıyorsa |
some() | En az bir eleman koşulu sağlıyor mu kontrol eder | Bir tanesi bile sağlıyorsa |
Sonuç
every()
ve some()
, JavaScript’te dizi elemanlarını test etmek için kullanabileceğin çok güçlü ama basit araçlardır.
Eğer bir listede hepsinin bir kurala uymasını istiyorsan every()
,
en az birinin uymasını istiyorsan some()
kullanmalısın.
Bu metotları anlamak, daha okunabilir, daha kısa ve daha etkili JavaScript kodları yazmana yardımcı olur.