Programlarımızı yazarken çoğu zaman çoklu parametrelerle uğraşmışızdır. Parametre sayılarımız kimi zaman bizim belirlediğimiz sayıda olurken kimi zaman da bir değişkene veya özel bir duruma bağlı olarak değişken sayıda ve belirsiz olabilir. Bu gibi durumlarda kullandığımız yazılım dilinin desteklediği standartlara göre en optimum ve kısa yolla istediğimiz kodu yazmaya çalışırız. Ecmascript 6 ile sunulan “Spread Operator” ve “Rest Parameters” kavramları, tam da bu durumlarda bizlere çok büyük kolaylıklar sağlıyor.
Örnek üzerinden anlatacak olursak; bir sınıftaki 5 öğrencinin notlarını tutan dizideki elemanları, not ortalamasını hesaplayan ortalamaHesapla adlı fonksiyona parametre olarak gönderelim ve sonucumuzu alalım.
Öncelikle spread operator kavramını daha iyi anlamak açısından bunu daha önce ES5 standartları ile nasıl yapıyorduk ona bakalım:
let notlar = [50,50,50,60,60]; // Fonksiyona parametre olarak bir dizi göndermemiz için apply() metodunu kullanmamız gerekir. let ortalama = notHesapla.apply(null,notlar); console.log(ortalama);
Spread operator kullanımı değişkenin başına “…” şeklindedir. Şimdi aynı örneği bir de spread operator kullanarak yapalım.
let notlar = [50,50,50,60,60]; // Göndermek istediğimiz dizinin başına "..." koyarak bu işlemi daha da basitleştirdik. let ortalama = notHesapla(...notlar); console.log(ortalama);
Spread operatorlerin kullanım alanı tabi ki de bu kadar kısıtlı değil. Şimdi daha farklı hangi alanlarlada kullanabiliriz onları inceleyelim:
Bir dizinin elemanlarına tek seferde ulaşımı
1 2 3 4 5 6 7
let arr1 = [1,10,100,1000,10000]; let arr2 = ["Güner","Bilgili","Şahin"]; console.log(...arr1); console.log(...arr2);
Yukarıdaki örnekte dikkat ederseniz birleştime işlemi yaparken farklı objelerin aslında aynı olan özellik isimlerine ufak bir değişiklik yaparak aynı olmamasını sağladık. Bunun sebebi, eğer iki objede aynı özellikler çakışırsa, son nesnenin özelliği diğerini ezer ve o geçerli olur.
Comments