Bir önceki yazımızda Spread Operator kavramını incelemiş ve spread operatörü ile bir argüman topluluğunu “…” kullanımı ile tek seferde fonksiyonlarına aktarabiliyor veya farklı alanlarda bu değişkenleri kullanabiliyorduk. Rest parametrelerinin kullanımı spread operatoru ile aynıdır fakat bu kafanızı karıştırmasın, işlevi tam tersi diyebiliriz. Rest parametreleri bizden aldığı argümanları bir dizi gibi toplayarak üzerinde değişik işlemler yapmamıza olanak sağlar. Rest parametreleri sayesinde fonksiyonlara sınırsız eleman gönderebiliriz. Daha iyi anlamak ve önemini kavramak açısından bir örnekle devam edelim.
Gönderdiğimiz değişkenlerin toplamını geri döndüren bir fonksiyonu öncelikle ES6 öncesi standartlarla yazalım:
1 | function topla(sayi1,sayi2,sayi3){ |
Burada değişken sayıda parametre yolladığımızda ilk 3 değeri parametre olarak alacak, ve ekstra gönderdiğimiz diğer değerleri işleme alamayacaktır. Bunun için gönderdiğimiz parametre sayısı kadar fonksiyonumuzda da o parametreleri karşılamamız gerekir. İşte tam da bu durumda ES6’ın bize sunduğu rest parametresi işimizi çok kolay ve pratik hale getiriyor. Kaç adet parametre yollarsak yollayalım rest parametresi ile karşılayıp, üzerinde gerekli işlemleri yapabiliriz.
1 | function topla(...rest){ // ...rest parametresi ile istediğimiz kadar parametre alabiliriz. |
NOT:
1) Bir fonksiyon için sadece bir adet rest parametresi kullanılabilir.
2) Rest parametresi başka parametrelerle beraber kullanılacaksa fonksiyonun son parametresi olmalıdır.
1 | const kareAl = (num1,num2, ...list) => // İlk iki değer (16 ve 21) num1 ve num2'ye atanır. Geri kalan bütün değerler ise list rest parametresine. |
Şimdi ise spread operatoru ve rest parametresi kullanarak dogum yıllarının bulunduğu bir obje dizisini, oluşturduğumuz yasHesapla adlı fonksiyona gönderelim ve sonuçları konsolda yazdıralım.
1 | const yasHesapla = (...list) => |
Daha fazlası için: - Rest parameters - JavaScript | MDN
Comments