हालाँकि JS कार्यान्वयन आंतरिक रूप से ऐसे मूल्य का ट्रैक रख सकता है, लेकिन इसे प्राप्त करने का कोई मानक तरीका नहीं है।
अतीत में, मोज़िला के जावास्क्रिप्ट वेरिएंट ने गैर-मानक को__count__
उजागर किया , लेकिन इसे 1.8.5 संस्करण के साथ हटा दिया गया है।
क्रॉस-ब्राउज़र स्क्रिप्टिंग के लिए आप संपत्तियों और जाँच पर स्पष्ट रूप से ध्यान देने के साथ फंस गए हैं hasOwnProperty()
:
function countProperties(obj) {
var count = 0;
for(var prop in obj) {
if(obj.hasOwnProperty(prop))
++count;
}
return count;
}
ECMAScript 5 सक्षम कार्यान्वयन के मामले में, इसे (कुडोस टू एवी फ्लैक्स ) के रूप में भी लिखा जा सकता है।
function countProperties(obj) {
return Object.keys(obj).length;
}
ध्यान रखें कि आप उन संपत्तियों को भी मिस कर देंगे, जो एन्युमरेबल नहीं हैं (उदाहरण के लिए एरे length
)।
यदि आप jQuery, प्रोटोटाइप, Mootools, $ जो भी नवीनतम-प्रचार की तरह एक फ्रेमवर्क का उपयोग कर रहे हैं, तो जांचें कि क्या वे अपने स्वयं के संग्रह एपीआई के साथ आते हैं, जो देशी जेएस वस्तुओं का उपयोग करने से आपकी समस्या का बेहतर समाधान हो सकता है।