दिलचस्प पोस्ट
कैसे favicon.ico अनुरोधों को रोकने के लिए? बफर डबल कैसे करें एक फॉर्म पर नेट नियंत्रण? प्रोग्राम को रोकने के बिना पूर्ण ट्रैसबैक कैसे मुद्रित करें? मैं केस असंवेदनशील स्ट्रिंग तुलना कैसे कर सकता हूं? रेगेक्स और के बीच का अंतर मैं NoSuchMethodError कैसे ठीक करूं? उन्नत स्वरूपित पाठ क्षेत्र इनपुट हेरफेर? होस्ट मशीन पर डॉककर छवियाँ कहां हैं? प्रगति संवाद और पृष्ठभूमि थ्रेड सक्रिय होने पर स्क्रीन अभिविन्यास बदलने के लिए कैसे करें? जावास्क्रिप्ट / jQuery में पिक्सेल स्ट्रिंग की लंबाई निर्धारित करें? लैंपडा को एक पाश के अंदर बनाना संपादित करें, सहेजें, स्वयं को संशोधित करें HTML दस्तावेज़; प्रारूप HTML, जावास्क्रिप्ट उत्पन्न सी # जेनेरिक टाइमआउट को कार्यान्वित करें जीजीप्लोट 2 में सरल जनसंख्या पिरामिड वेक्टर के लिए वैकल्पिक <bool>

वस्तु लंबाई कैसे प्राप्त करें

क्या कोई अंतर्निर्मित फ़ंक्शन है जो ऑब्जेक्ट की लंबाई वापस कर सकता है?

उदाहरण के लिए, मेरे पास a = { 'a':1,'b':2,'c':3 } जो 3 को वापस करनी चाहिए। अगर मैं एक। a.length उपयोग करता a.length यह undefined

यह एक सरल लूप फ़ंक्शन हो सकता है, लेकिन मैं जानना चाहूंगा कि कोई अंतर्निर्मित फ़ंक्शन है या नहीं?

एक संबंधित प्रश्न ( JSON ऑब्जेक्ट की लंबाई ) – चुने गए उत्तर में उपयोगकर्ता ऑब्जेक्ट को एक सरणी में परिवर्तित करने की सलाह देता है, जो मेरे कार्य के लिए बहुत सहज नहीं है।

वेब के समाधान से एकत्रित समाधान "वस्तु लंबाई कैसे प्राप्त करें"

Object.keys () का समर्थन करने वाले ब्राउज़र के लिए आप बस ऐसा कर सकते हैं:

 Object.keys(a).length; 

अन्यथा (विशेषकर आईई <9) में, आप ऑब्जेक्ट के माध्यम से for (x in y) लूप के साथ लूप कर सकते हैं:

 var count = 0; var i; for (i in a) { if (a.hasOwnProperty(i)) { count++; } } 

hasOwnProperty यह सुनिश्चित करने के लिए है कि आप केवल ऑब्जेक्ट से गुणों की गिनती कर रहे हैं, और इसकी प्रोटोटाइप से "इनहेरिट्स" गुणों को नहीं।

$.map() साथ आसानी से किया जा सकता है:

 var len = $.map(a, function(n, i) { return i; }).length; 

इसे ऐसा करना चाहिए:

 Object.keys(a).length 

हालाँकि, Object.keys IE8 और नीचे, ओपेरा और एफएफ 3.6 और नीचे समर्थित नहीं है।

लाइव डेमो: http://jsfiddle.net/simevidas/nN84h/

क्या आपने underscore.js ( http://underscorejs.org/docs/underscore.html ) पर एक नज़र लिया है? यह बहुत उपयोगी विधियों के साथ एक उपयोगिता पुस्तकालय है एक संग्रह size विधि है, साथ ही एक टूएरे विधि है, जो आपको जो चाहिए वह आपको प्राप्त कर सकती है।

 _.size({one : 1, two : 2, three : 3}); => 3 

सभी को एक साथ संक्षेप में प्रस्तुत करना, यहां एक सार्वभौमिक कार्य है (इसमें आईओ 8 समर्थन शामिल है):

 var objSize = function(obj) { var count = 0; if (typeof obj == "object") { if (Object.keys) { count = Object.keys(obj).length; } else if (window._) { count = _.keys(obj).length; } else if (window.$) { count = $.map(obj, function() { return 1; }).length; } else { for (var key in obj) if (obj.hasOwnProperty(key)) count++; } } return count; }; document.write(objSize({ a: 1, b: 2, c: 3 })); // 3 

JQuery में मैंने इसे ऐसे तरीके से बनाया है:

 len = function(obj) { var L=0; $.each(obj, function(i, elem) { L++; }); return L; } 

इसलिए ऑब्जेक्ट को खोजने और बदलने की आवश्यकता नहीं है। कुंजी पद्धति, स्क्रिप्ट के निष्पादन में एक और तरीका यह कोड होगा:

 if(!Object.keys) { Object.keys = function(obj) { return $.map(obj, function(v, k) { return k; }); }; } 

इनुएंडो के जवाब का एक jQuery-ised फ़ंक्शन, उपयोग के लिए तैयार है।

 $.extend({ keyCount : function(o) { if(typeof o == "object") { var i, count = 0; for(i in o) { if(o.hasOwnProperty(i)) { count++; } } return count; } else { return false; } } }); 

इस तरह से कहा जा सकता है:

 var cnt = $.keyCount({"foo" : "bar"}); //cnt = 1; 

एक और जवाब:

 var j = '[{"uid":"1","name":"Bingo Boy", "profile_img":"funtimes.jpg"},{"uid":"2","name":"Johnny Apples", "profile_img":"badtime.jpg"}]'; obj = Object.keys(j).length; console.log(obj) 

उन लोगों के लिए जो यहां पहले से ही एक jQuery ऑब्जेक्ट है, कुछ के आइटम गिनने के लिए यहां आ रहे हैं:
। लम्बाई है जिसे आप ढूंढ रहे हैं:

उदाहरण:

 len = $('#divID').length; alert(len); 

ऑब्जेक्ट का उपयोग करके कुंजी की वस्तु को गिना जा सकता है

 Object.keys(obj).length 

यह ऑब्जेक्ट में चाबी की लंबाई वापस कर देगा। यदि यह 0 देता है तो इसका मतलब है कि वस्तु खाली है।

यदि आप नई निर्भरता से बचने के लिए चाहते हैं तो आप अपनी खुद की स्मार्ट वस्तुएं बना सकते हैं बेशक, यदि आप और अधिक करना चाहते हैं तो सिर्फ इसका आकार प्राप्त करें।

 MyNeatObj = function (obj) { var length = null; this.size = function () { if (length === null) { length = 0; for (var key in obj) length++; } return length; } } var thingy = new MyNeatObj(originalObj); thingy.size(); 

आप लोदाश लिब और _.to लांघ (ऑब्जेक्ट) की तरह कुछ भी इस्तेमाल कर सकते हैं आपको अपने ऑब्जेक्ट की लंबाई देना चाहिए

आप एक और नाम जोड़ सकते हैं: मूल्य की लंबाई लंबाई, और वेतन वृद्धि / इसे उचित रूप से घटाएं इस तरह, जब आपको लंबाई की क्वेरी करने की आवश्यकता होती है, तो आपको हर बार संपूर्ण ऑब्जेक्ट गुणों के माध्यम से दोबारा नहीं करना पड़ता है, और आपको किसी विशिष्ट ब्राउज़र या लाइब्रेरी पर भरोसा नहीं करना पड़ता है। यह सब आपके लक्ष्य पर निर्भर करता है, बिल्कुल।

आपके पास ऑब्जेक्ट में एक अपरिभाषित संपत्ति हो सकती है यदि Object.keys(data).length की विधि का उपयोग कर रहे हैं। Object.keys(data).length का उपयोग उन गुणों को भी गिना जाएगा।

आप उन्हें बाहर फ़िल्टर कर सकते हैं।

 Object.keys(data).filter((v) => {return data[v] !== undefined}).length 
 jQuery(OBJECT).size(); 

उदाहरण:

 var a = { 'a':1,'b':2,'c':3 }; jQuery(a).size();