JavaScript hap yazısı : Array.some(), Array.every() ve Array.findIndex()💡
Herkese tekrardan merhaba! Bu yazımda sizlere yine çok işinize yarayacak ufak bilgiler vereceğim. Daha fazla kişinin bu bilgilere erişmesi için beğenmeyi ve paylaşmayı unutmayın :)
Array.some()
Bu method ile yapacağımız şey çok basit. Belirli bir array içerisinde vereceğimiz koşula uyan tek bir eleman dahi bulsa true dönecek olan bir method.
Burada some methodu bir callback ve index alıyor parametre olarak. Callback fonksiyonu içerisindeki koşul true dönene kadar çalışır. Truthy dediğimiz değeri bulduğu an çalışmayı durdurur ve true döner. Eğer öyle bir değer bulamazsa false döner.
Hemen güzel bir örnek ile pekiştirelim.
const years = [1989, 2000, 2018, 1970]; // 4 adet sene içeren bir arrayimiz olsun.years.some(function(year){
return year >= 2000; // 2000'den büyük olan yıllardan varsa
});
Yukarıdaki method true dönecek çünkü 2000'e eşit ya da 2000'den büyük dizi elemanı mevcut.
Adettendir, yukarıdaki fonksiyonu tek satır halinde ES6 kullanarak yazalım:
const years = [1989, 2000, 2018, 1970]; // 4 adet sene içeren bir arrayimiz olsun.years.some(year => year >= 2000); // 2000'den büyük ya da eşit olan yıllardan varsa
Gördüğünüz üzere fat arrow fonksiyonunu kullanarak hızlıca değeri return ettirdik ve kodumuz kısaldı.
Array.every()
Bu method ile yapacağımız ise oldukça basit. Belirli bir dizi içerisinde vereceğimiz koşula, tüm elemanların uyup uymadığını kontrol ediyor.
Burada every methodu bir callback ve index alıyor parametre olarak. Callback fonksiyonu içerisindeki koşul falsy bir değer dönene kadar çalışır.
every çağırıldığı diziyi etkilemez, değiştirmez.
Hemen güzel bir örnek ile pekiştirelim.
const years = [1989, 2000, 2018, 1970]; // 4 adet sene içeren bir arrayimiz olsun.years.every(function(year){
return year >= 2000; // 2000'den büyük ya da eşit olan yıllardan varsa
});
Yukarıdaki kod false dönecektir çünkü tüm yıllar 2000'e eşit ya da büyük değildi.
Bu aralar ES6'nın yaygınlaşması için çok uğraşıyorum o sebeple burada da tekrar ES6 ile yazalım:
const years = [1989, 2000, 2018, 1970]; // 4 adet sene içeren bir arrayimiz olsun.years.every(year => year >= 2000); // 2000'den büyük olan yıllardan varsa
Array.findIndex();
Özetle yaptığı iş, diziye method geçerken, test kuralına ilk uyan elemanın indexini bulmaya yarıyor. Bu index bilgisi ile ilgili diziden gerekli çıkartma, ekleme vb gibi işlemleri yapabilirsiniz.
Eğer dizi içerisinde varsa dizideki indexini veriyor, yoksa da -1 olarak dönüş yapıyor.
const years = [1989, 2000, 2018, 1970]; // 4 adet sene içeren bir arrayimiz olsun.function ilkBuyukRakamiBul(element) {
return element > 2000;
}console.log(years.findIndex(ilkBuyukRakamiBul));
// Beklenen çıktı: 2 yani 2018
Bunu nerede kullanabilirsiniz? Tamamen hayal gücünüze bağlı olmakla beraber eğer API üzerinden bir şeyler yapıyorsanız muhakkak çok güçlü oluyor.
Okuduğunuz için çok teşekkür ederim. Like butonu ve paylaşım çok önemli! Atlamayalım :)
Kaynaklar: