पुराने और नए ब्राउज़र दोनों के साथ उत्कृष्ट प्रदर्शन और संगतता के साथ ऐसा करने का सबसे आसान तरीका है, या तो अपने पृष्ठ में Lo-Dash या Underscore शामिल करना है।
तो आप का उपयोग या तो _.size(object)
या _.keys(object).length
अपने obj.Data
के लिए, आप के साथ इस परीक्षण कर सकते हैं कर सकते हैं:
console.log(_.size(obj.Data));
या:
console.log(_.keys(obj.Data).length);
लो-डैश और अंडरस्कोर दोनों उत्कृष्ट रहे हैं पुस्तकालयों; आप या तो अपने कोड में एक बहुत उपयोगी पाएंगे। (बल्कि वे एक दूसरे के समान हैं, लो-डैश कुछ Advantanges के साथ एक नया संस्करण है।)
फिर, आप अपने कोड में इस कार्यप्रणाली, जो केवल ऑब्जेक्ट के गुणों के माध्यम से लूप और उन्हें गिना जाता है शामिल हो सकते हैं:
हालांकि
console.log(ObjectLength(obj.Data));
कि कोड के रूप में तेजी से के रूप में यह आधुनिक ब्राउज़रों में हो सकता है नहीं है,:
function ObjectLength(object) {
var length = 0;
for(var key in object) {
if(object.hasOwnProperty(key)) {
++length;
}
}
return length;
};
आप के साथ इस परीक्षण कर सकते हैं। एक संस्करण बहुत तेजी से आधुनिक ब्राउज़रों में है और अभी भी है कि पुराने लोगों में काम करता है के लिए, आप उपयोग कर सकते हैं:
function ObjectLength_Modern(object) {
return Object.keys(object).length;
}
function ObjectLength_Legacy(object) {
var length = 0;
for(var key in object) {
if(object.hasOwnProperty(key)) {
++length;
}
}
return length;
}
var ObjectLength =
Object.keys ? ObjectLength_Modern : ObjectLength_Legacy;
और पहले की तरह, के साथ यह परीक्षण:
console.log(ObjectLength(obj.Data));
इस कोड का उपयोग करता है आधुनिक ब्राउज़रों में Object.keys(object).length
और पुराने ब्राउज़र के लिए एक लूप में गिनने के लिए वापस गिर जाता है।
लेकिन यदि आप इस काम पर जा रहे हैं, तो मैं इसके बजाय लो-डैश या अंडरस्कोर का उपयोग करने की सलाह दूंगा और उन पुस्तकालयों के सभी लाभ प्राप्त करूंगा।
मैंने jsPerf that compares the speed of these various approaches स्थापित किया। कृपया इसे किसी भी ब्राउज़र में चलाएं जो आपके पास परीक्षण में जोड़ने के लिए आसान है।
suggesting Object.keys
for newer browsers के उत्तर में उनके उत्तर में धन्यवाद।
आप पोस्ट करें सकता है पूरा वस्तु? –
आप इस तरह से किसी ऑब्जेक्ट का उपयोग क्यों कर रहे हैं? आपके प्रश्न पर विचार करने के लिए बहुत सी चीजें हैं - आपको यह समझने की आवश्यकता है कि कौन से गुण हैं, कौन सा संख्याएं हैं, प्रोटोटाइप यहां गड़बड़ी में कैसे जोड़ सकते हैं, और इसी तरह। क्यों न सिर्फ एक सरणी का उपयोग करें? – Sacho
भले ही इस क्यू को डुप्लिकेट चिह्नित किया गया हो, फिर भी स्वीकृत उत्तर मेरे लिए आसान काम करता है कि पहले पूछे जाने वाले प्रश्नों में दिए गए समाधान। –