DİZİLERE AİT METOTLAR
Javascript’de diziler Array nesnesinden türetilir. Bu nesnenin birçok metodu bulunur. En çok kullanılanlardan
bazılarını inceleyelim.
map() Fonksiyonu (Metodu)
Bu fonksiyon parametre olarak bir callback fonksiyon alır. Bunu genellikle argüman olarak direkt bir arrow function
vererek yaparız. Bu callback fonksiyon bir parametre alır ve bir değer döner. map fonksiyonu bu parametreyi
dizinin o anki elemanı olarak ele alır. Dönen değeri de yeni bir dizi oluşturarak ona ekler. Bu şekilde [Link]()
metodu dizinin tüm elemanlarını dönerek, istenilen işlemleri yapıp yepyeni başka bir dizi oluşturur ve bunu döner.
Dönen bu yeni diziyi bir değişkene alıp istediğimiz şekilde kullanabiliriz.
✏️ sayilar dizimiz olsun. Bunların karelerini yeni bir dizi olarak oluşturalım;
let sayilar = [1, 2, 0, 4, 9];
let kareler = [Link]((sayi) => sayi ** 2);
// aşağıdaki şekillerde de yapılabilir (aynı şey)
/*
let kareler = [Link](function (sayi) {
return sayi ** 2;
});
let kareler = [Link]((sayi) => {
return sayi ** 2;
});
*/
[Link](kareler); // [1, 4, 9, 16, 25]
filter() Fonksiyonu
Bu fonksiyonda callback fonksiyon alır. Yine bir parametre ve değer dönen fonksiyon ister. Parametre map’de
olduğu gibi o anki elemandır. Dönen değerin true veya false olmasına göre yeni dizi oluşturur. true dönülürse yeni
diziye o anki elemanı ekler, false ise atlar. Bu şekilde filtreleme yapabilmemizi sağlar.
Örnek:
let sayilar = [5, 10, 15, 20];
let buyukSayilar = [Link]((sayi) => sayi > 10);
[Link](buyukSayilar); // Çıktı: [15, 20]
reduce() Fonksiyonu
Diziyi belirli istediğimiz işlemleri yaparak tek bir değere indirger. Genel gösterimi şu şekildedir;
[Link](function(akumulator, dizininElemani) { /* işlemler */ }, baslangicDegeri)
Yukarıda da görüleceği üzere iki parametre alır. Bunlardan;
İlki bir callback fonksiyonudur. Bu fonksiyon iki parametrelidir.
İlk parametresi “akümülatör” olarak da anılır ve önceki dönülen değeri taşır.
İkinci parametresi ise dizinin o anki elemanının değeridir.
DİZİLERE AİT METOTLAR 1
İkinci parametre akümülatör’ün başlangıç değeridir ve opsiyoneldir. Burada verilen değer dizinin ilk elemanı ele
alınırken akümülatör’e verilir ve callback fonksiyona o şekilde girilir. Eğer değeri verilmezse, reduce fonksiyonu
akümülatör’e ilk elemanın değerini verip dizinin ikinci elemanından başlar.
Reduce fonksiyonu son iterasyon’da dönülen akümülatör’ün değerini döner.
✏️ Örnekle açıklayalım;
const sayilar = [1, 2, 3, 4];
const toplam = [Link]((accumulator, currentValue) => accumulator + currentValue, 0);
[Link](toplam); // Çıktı: 10
Yukarıda dikkat edilirse, ikinci parametre olarak başlangıç değeri 0 verildi. Dolayısıyla akümülatöre bu değer verilir
ve dizinin ilk elemanı currentValue 'ya verilerek başlanır. Bu callback fonksiyonda dönülen değer, sonraki iterasyonda
akümülatör’e verilir. currentValue 'ya da o iterasyondaki dizinin elemanı verilir. Bu şekilde akümülatör’e sayıların
toplamı atanarak biriktirilir ve son iterasyonda toplam elde edilmiş olur.
✏️ Çarpımlara bakalım;
const numbers = [2, 3, 4];
const product = [Link]((accumulator, currentValue) => accumulator * currentValue, 1);
[Link](product); // Çıktı: 24
DİZİLERE AİT METOTLAR 2