JavaScript Fundamentals

JavaScript’te Fonksiyon Parametrelerini Verimli Bir Şekilde Diziye Dönüştürme

Spread the love

JavaScript fonksiyonları, fonksiyonun parametre listesinin bunları açıkça tanımlayıp tanımlamamasına bakılmaksızın, fonksiyona geçen tüm argümanları tutan arguments adlı özel bir nesne sağlar. Ancak, arguments gerçek bir dizi değildir; dizi benzeridir, bir length özelliğine sahiptir ve sayısal indeksler aracılığıyla eleman erişimine izin verir, ancak map, filter ve reduce gibi standart dizi yöntemlerinden yoksundur. Bu, daha kolay manipülasyon için arguments‘ı standart bir JavaScript dizisine dönüştürmeyi sıklıkla gerekli kılar.

İçerik Tablosu

arguments Nesnesini Anlamak

arguments nesnesi, herhangi bir JavaScript fonksiyonunun içinde kullanılabilir. Dizi benzeridir, yani elemanlarına köşeli parantez gösterimi (örneğin, arguments[0]) kullanarak erişebilirsiniz ve argüman sayısını gösteren bir length özelliğine sahiptir. Ancak, gerçek bir dizi değildir ve Array.prototype‘tan kalıtım almaz, yerleşik dizi yöntemlerinin kullanımını engeller.


function myFunc() {
  console.log(arguments); // Arguments nesnesi çıktılar
  console.log(arguments.length); // Argüman sayısını çıktılar
}

myFunc(1, 2, 3);

Geriye Kalan Parametreleri Kullanma (...)

En modern ve verimli yaklaşım, geriye kalan parametreleri kullanmaktır. ES6’da tanıtılan geriye kalan parametreler, belirsiz sayıda argümanı gerçek bir diziye toplamanıza olanak tanır.


function myFunc(...args) {
  console.log(args); // args gerçek bir dizi!
  console.log(args.map(x => x * 2)); // Dizi yöntemlerini kullanma
}

myFunc(1, 2, 3);

Bu yöntem özlü, okunabilir ve oldukça performanslıdır. Modern JavaScript’te argümanları diziye dönüştürmek için önerilen yaklaşımdır.

Array.from() Kullanımı

Array.from() yöntemi, dizi benzeri veya yineleyici bir nesneden yeni bir dizi oluşturur ve bu da arguments nesnesini dönüştürmek için idealdir.


function myFunc() {
  const argsArray = Array.from(arguments);
  console.log(argsArray);
  console.log(argsArray.filter(x => x > 1)); // Dizi yöntemlerini kullanma
}

myFunc(1, 2, 3);

Array.from(), geriye kalan parametreleri desteklemeyen eski tarayıcılarda iyi uyumluluk sunar.

Dizi Literallerini Kullanma

Önceki yöntemlerden daha az verimli ve daha az okunabilir olsa da, bir dizi literal ve bir döngü kullanarak manuel olarak bir dizi oluşturabilirsiniz.


function myFunc() {
  const argsArray = [];
  for (let i = 0; i < arguments.length; i++) {
    argsArray.push(arguments[i]);
  }
  console.log(argsArray);
}

myFunc(1, 2, 3);

Bu yöntem, özellikle çok sayıda argümanla uğraşırken, ayrıntılılığı ve düşük performansı nedeniyle genellikle önerilmez.

En İyi Yöntemi Seçme

Modern JavaScript geliştirme için, geriye kalan parametreleri (...args) kullanmak, argümanları diziye dönüştürmek için tercih edilen ve en verimli yöntemdir. Özlü, okunabilir ve modern JavaScript özelliklerini kullanır. Array.from(arguments), daha geniş tarayıcı uyumluluğu için uygun bir yedek sağlar. Diğer iki yöntemi kullanmayı engelleyen çok özel bir kısıtlama yoksa dizi literallerini kullanmaktan kaçının.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir