2012-01-02 13 views
28

संभव डुप्लिकेट:
Length of Javascript Associative Arrayजावास्क्रिप्ट हैश टेबल गिनती कैसे प्राप्त करें?

hash_table = {a: 131, b: 222, c:313} 

लंबाई विधि निश्चित रूप से काम नहीं कर रहा है, क्योंकि यह एक प्रमुख के साथ भ्रमित हो जाएगा।

तो मैं इसे कैसे कर सकता हूं?

+0

डुप्लिकेट प्रश्न से, एक उपयोगी उत्तर जो यहां नहीं है। अंडरस्कोर का आकार, _.size() का प्रयोग करें। http://stackoverflow.com/a/11346637/1684480 –

उत्तर

48

Object.keys ऑब्जेक्ट में सभी कुंजी को सूची के रूप में वापस कर देगा, फिर लंबाई प्राप्त करने के लिए लंबाई का उपयोग करें।

उदाहरण:

Object.keys(hash_table).length 

नोट है कि इस ECMA 5 और कुछ ब्राउज़रों में उपलब्ध नहीं हो सकता। पूर्ण दस्तावेज़ के लिए https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/keys देखें।

+0

क्या यह विरासत में भी संपत्तियों को वापस लाएगा? – rsk82

+0

नहीं, यह केवल अपनी संपत्तियों को वापस कर देगा। – qiao

+0

जैसा कि मैं इसे समझता हूं, ऑब्जेक्ट.कीज़ IE8 और निम्न में समर्थित नहीं है, इसलिए सावधान रहें ... –

2
var count = 0; 
for (property in hash_table) count++; 
+0

JSON एक डेटा एक्सचेंज प्रारूप है और नाम और समान वाक्यविन्यास के अलावा जावास्क्रिप्ट के साथ कुछ भी नहीं है । जावास्क्रिप्ट में "सहयोगी Arrays" नहीं है, केवल सरणी। –

+0

आपके फीडबैक के लिए धन्यवाद: मैंने तदनुसार अपना जवाब संपादित कर लिया है! – simonecampora

+0

फिर भी, "सहयोगी फैशन में Arrays का उपयोग करके" का क्या मतलब है? 'लंबाई' संपत्ति केवल संख्यात्मक गुणों के लिए अद्यतन की जाती है, यानी। 'arr [0] = 42.'। गैर-संख्यात्मक गुण 'लंबाई' को अपडेट नहीं करते हैं और इन्हें सरणी के लिए उपयोग नहीं किया जाना चाहिए क्योंकि यह केवल भ्रमित है। –

संबंधित मुद्दे