JS uygulamaları bu tür bir değeri dahili olarak takip etse de, onu elde etmenin standart bir yolu yoktur.
Geçmişte, Mozilla'nın Javascript varyantı standart olmayanı__count__
açığa çıkardı, ancak 1.8.5 sürümüyle kaldırıldı.
Tarayıcılar arası komut dosyası oluşturma için, özellikleri açıkça yinelemek ve hasOwnProperty()
şunları kontrol etmek zorunda kalıyorsunuz :
function countProperties(obj) {
var count = 0;
for(var prop in obj) {
if(obj.hasOwnProperty(prop))
++count;
}
return count;
}
ECMAScript 5 özellikli uygulamalar olması durumunda, bu şu şekilde de yazılabilir ( Avi Flax'a Tebrikler )
function countProperties(obj) {
return Object.keys(obj).length;
}
Ayrıca numaralandırılamayan özellikleri (örneğin bir dizinin length
) gözden kaçıracağınızı unutmayın .
JQuery, Prototype, Mootools, $ en yeni ne olursa olsun gibi bir çerçeve kullanıyorsanız, kendi koleksiyon API'leriyle gelip gelmediklerini kontrol edin; bu, sorununuza yerel JS nesnelerini kullanmaktan daha iyi bir çözüm olabilir.