JavaScript Nesnesinin Uzunluğunu
Anlamak: En İyi Uygulamalar ve Modern Çözümler
JavaScript nesneleri yaygın olarak kullanılır, ancak bunların uzunluğunu nasıl belirleyebilirsiniz? Bir nesnenin kaç tane özelliği olduğunu bilmeniz gerektiğinde yalnız değilsiniz. Bu makale, JavaScript nesnesinin uzunluğunu elde etmenin en iyi yöntemlerini ve bunu yaparken dikkate almanız gereken nuansları, semboller ve onların özellikleri hakkında tartışmayı içerir.
Sorun
JavaScript nesneleriyle çalışırken, sahip oldukları özelliklerin sayısını öğrenmeniz gerekebilir. Örneğin, aşağıdaki basit nesneye bakalım:
const myObject = new Object();
myObject["firstname"] = "Gareth";
myObject["lastname"] = "Simpson";
myObject["age"] = 21;
Şunu sorabilirsiniz: Bu nesnenin uzunluğunu almak için yerleşik veya yaygın olarak kabul edilen bir yöntem var mı?
Modern Çözümler
2016 itibarıyla, birçok tarayıcı ES5 ve sonrası sürümleri desteklemektedir, bu da bizim Object.keys()
yöntemini kullanarak bir nesnenin uzunluğunu kolayca belirlememize olanak tanır. Bu yöntem, nesnenin kendi özellik adlarının bir dizisini döndürür ve bu dizinin uzunluğunu ölçerek, nesnenin kaç tane özelliği olduğunu öğrenebiliriz.
Object.keys()
Kullanımı
Bunu uygulamanın bir örneği şöyle olabilir:
var size = Object.keys(myObject).length;
console.log(size); // Çıktı: 3
Object.keys()
Kullanmanın Avantajları
- Basitlik: Kolayca uygulanabilir ve anlaşılması kolaydır.
- Prototip Değişiklikleri Yok: Bu yöntem, Object prototipini değiştirmeyi gerektirmediğinden, kodunuzda potansiyel hataları ve çakışmaları önlemek için önemlidir.
Sembolik Özellikler
Nesnelerin Object.keys()
tarafından döndürülmeyecek sembolik özelliklerin olabileceğini belirtmek önemlidir. Semboller, nesne özellikleri için benzersiz tanımlayıcılar oluşturmak amacıyla JavaScript’te kullanılan özel bir veri türüdür. Bu özellik, özelliklerin üzerine yazılmasını önlemeye yardımcı olur ve kodunuzu daha sağlam hale getirir.
Sembolik Özelliklere Erişim
Bu özellikleri almak için Object.getOwnPropertySymbols()
kullanılabilir. İşte hem normal hem de sembolik özellikleri işlemek için bir örnek:
var person = {
[Symbol('name')]: 'John Doe',
[Symbol('age')]: 33,
"occupation": "Programmer"
};
// Sembolik olmayan özelliklerin uzunluğunu alma
const propOwn = Object.getOwnPropertyNames(person);
console.log(propOwn.length); // Çıktı: 1
// Sembolik özelliklerin uzunluğunu alma
let propSymb = Object.getOwnPropertySymbols(person);
console.log(propSymb.length); // Çıktı: 2
Yöntem Kullanımına Dair Özet
Özetle, bir JavaScript nesnesinin uzunluğunu hesaplarken kontrol edilmesi gereken ana yöntemler şunlardır:
Object.keys(obj)
: Sayılabilen string anahtar özelliklerinin sayısını döndürür.Object.getOwnPropertyNames(obj)
: Tüm kendi özelliklerin sayısını döndürür (sembolleri göz ardı eder).Object.getOwnPropertySymbols(obj)
: Kendi sembol özelliklerinin sayısını döndürür.
Alternatif Bir Yaklaşım
Eski kod tabanlarında, boyutu elle hesaplamak için yaygın bir yaklaşım, bir işlev oluşturmaktı:
Object.size = function(obj) {
var size = 0;
for (var key in obj) {
if (obj.hasOwnProperty(key)) size++;
}
return size;
};
// Bir nesnenin boyutunu alma
const myObj = {};
var size = Object.size(myObj);
Dikkat
Object.prototype
üzerine yöntem eklemek genellikle iyi bir uygulama değildir, çünkü bu uygulamalarınızda beklenmedik davranışlara yol açabilir.
Sonuç
JavaScript nesnesinin uzunluğunu belirlemek, Object.keys()
kullanılarak etkili bir şekilde gerçekleştirilebilecek yaygın bir görevdir, aynı zamanda tamlık açısından sembolleri de göz önünde bulundurmak önemlidir. Bu araçlar sayesinde, JavaScript uygulamalarınızda nesne özelliklerinin sayımlarını güvenle ve etkili bir şekilde yönetebileceksiniz.