दिलचस्प पोस्ट
एंड्रॉइड के लिए ब्लूटूथ और वाईफ़ाई प्रिंटिंग क्या आप PHP या जावास्क्रिप्ट के साथ असफल फ़ॉर्म जमा करने के बाद फ़ाइल आदानों को पुनः आबाद कर सकते हैं? आईफोन कोर डेटा "स्वचालित लाइटवेट माइग्रेशन" कस्टम दृश्य में चेकेड टेक्स्ट का उपयोग करके CHOICE_MODE_MULTIPLE के साथ सूची दृश्य आईओएस एप पर छवियों को कैश करने का सबसे अच्छा तरीका? फास्ट एल्गोरिथ्म कार्यान्वयन बहुत छोटी सूची सॉर्ट करने के लिए एक्सेन्ट और सभी वर्णों को कैसे हटाया जा सकता है <> a..z में sql-server? Nested Array के साथ PHP Foreach? डॉकर में लगातार भंडारण (उदाहरण के डेटाबेस) से निपटने के लिए कैसे घटक के लिए भुगतान किए बिना मैं .NET में RTF (रिच टेक्स्ट) को HTML कैसे रूपांतरित कर सकता हूं? IE में किसी भी व्यक्ति को HTML पर सेट नहीं किया जा सकता SQL में कोई उत्पाद समेकित कार्य क्यों नहीं है? सक्लाइट: में चयन करें? मैं RichTextBox में एक छवि कैसे सम्मिलित कर सकता हूं? नाम से res / raw फ़ाइल को कैसे पढ़ा जाए

ऑब्जेक्ट के प्रकार का सरणी क्यों "ऑब्जेक्ट" लौटाता है और "ऐरे" नहीं?

संभव डुप्लिकेट:
जावास्क्रिप्ट: जाँच करें कि ऑब्जेक्ट सरणी है?

ऑब्जेक्ट की एक सरणी ऑब्जेक्ट क्यों मानी जाती है, और एक सरणी नहीं है? उदाहरण के लिए:

$.ajax({ url: 'http://api.twitter.com/1/statuses/user_timeline.json', data: { screen_name: 'mick__romney'}, dataType: 'jsonp', success: function(data) { console.dir(data); //Array[20] alert(typeof data); //Object } });​ 

बेला

Solutions Collecting From Web of "ऑब्जेक्ट के प्रकार का सरणी क्यों "ऑब्जेक्ट" लौटाता है और "ऐरे" नहीं?"

जावास्क्रिप्ट में एक अजीब व्यवहार और युक्ति का एक प्रकार है आरे का Object

आप जांच सकते हैं कि क्या वेरिएबल दो तरीकों से एक सरणी है:

 var isArr = data instanceof Array; var isArr = Array.isArray(data); 

लेकिन सबसे विश्वसनीय तरीका यह है:

 isArr = Object.prototype.toString.call(data) == '[object Array]'; 

चूंकि आपने jQuery के साथ अपने प्रश्न को टैग किया है, आप jQuery के isArray समारोह का उपयोग कर सकते हैं:

 var isArr = $.isArray(data); 

कल्पना का हवाला देते हुए

15.4 सरणी ऑब्जेक्ट्स

ऐरे ऑब्जेक्ट संपत्ति के नाम के एक निश्चित वर्ग के लिए विशेष उपचार देते हैं। एक गुण नाम पी (एक स्ट्रिंग मान के रूप में) एक सरणी अनुक्रमणिका है और अगर केवल अगर ToString (ToUint32 (P)) पी के बराबर है और ToUint32 (P) 2 ^ 32-1 के बराबर नहीं है संपत्ति जिसका संपत्ति नाम एक सरणी सूचकांक है वह एक तत्व भी कहा जाता है प्रत्येक सरणी वस्तु की लंबाई वाली संपत्ति होती है जिसका मूल्य हमेशा 2 ^ 32 लम्बाई संपत्ति का मूल्य हर प्रॉपर्टी के नाम से संख्यात्मक रूप से अधिक है जिसका नाम सरणी सूचकांक है; जब भी कोई ऐरे ऑब्जेक्ट की संपत्ति बनाई जाती है या बदल जाती है, अन्य गुणों को इस अपरिवर्तनीय बनाए रखने के लिए आवश्यकतानुसार समायोजित किया जाता है। विशेष रूप से, जब भी किसी संपत्ति को जोड़ा जाता है, जिसका नाम एक सरणी अनुक्रमणिका है, तो लंबाई की संपत्ति बदल जाती है, यदि आवश्यक हो, उस सरणी सूचकांक के अंकीय मूल्य से एक और अधिक हो; और जब भी लंबाई की संपत्ति बदल जाती है, हर प्रॉपर्टी जिसका नाम एक सरणी अनुक्रमणिका होता है जिसका मूल्य नई लंबाई से छोटा नहीं होता है स्वचालित रूप से हटा दिया जाता है यह बाधा केवल एक अर्रे ऑब्जेक्ट के गुणों पर लागू होता है और लंबाई या सरणी सूचकांक गुणों से अप्रभावित होता है जो इसके प्रोटोटाइप से विरासत में हो सकते हैं।

और यहाँ typeof लिए एक टेबल है

यहां छवि विवरण दर्ज करें


कुछ पृष्ठभूमि जोड़ने के लिए, जावा में दो डेटा प्रकार हैं:

  1. आदिम डेटा प्रकार – इसमें शून्य, अपरिभाषित, स्ट्रिंग, बूलियन, नंबर और वस्तु शामिल है।
  2. व्युत्पन्न डेटा प्रकार / विशेष ऑब्जेक्ट – इन में कार्य, सरणियां और नियमित अभिव्यक्तियां शामिल हैं। और हां, ये सभी जावास्क्रिप्ट में "ऑब्जेक्ट" से प्राप्त हुए हैं।

जावास्क्रिप्ट में एक ऑब्जेक्ट संरचना में समानता है, जो ऑब्जेक्ट ओरिएंटेड भाषाओं में देखा जाता है – अर्थात, इसमें कुंजी-वैल्यू जोड़ी का एक सेट है।

एक सरणी को निम्न गुण / चाबियाँ के साथ एक वस्तु माना जा सकता है:

  1. लंबाई – यह 0 या उससे ऊपर (गैर-नकारात्मक) हो सकता है
  2. सरणी सूचकांक इस से, मेरा मतलब है "0", "1", "2", आदि सरणी ऑब्जेक्ट के सभी गुण हैं।

आशा है कि इस पर अधिक प्रकाश डालने में मदद मिली है कि क्यों प्रकार के अर्रे एक ऑब्जेक्ट देता है चीयर्स!

इस उदाहरण को आज़माएं और आप समझेंगे कि जावास्क्रिप्ट में अंतर बी / डब्ल्यू एसोसिएटिव अर्रे और ऑब्जेक्ट क्या है।

सहयोगी सरणी

 var a = new Array(1,2,3); a['key'] = 'experiment'; Array.isArray(a); 

रिटर्न true

ध्यान रखें कि a.leenth wil अनिर्धारित है, क्योंकि लंबाई को एक कुंजी के रूप में माना जाता है, आपको Object.keys(a).length उपयोग करना चाहिए। एक एसोसिएटिव अर्रे की लंबाई प्राप्त करने के लिए लंबाई।

वस्तु

 var a = {1:1, 2:2, 3:3,'key':'experiment'}; Array.isArray(a) 

false रिटर्न

JSON रिटर्न और ऑब्जेक्ट … एक एसोसिएटेटेड अर्रे वापस कर सकता है … लेकिन ऐसा नहीं है

आपके कोड में कोई सादे जेएस सरणी नहीं है। data एक मूल JS ऑब्जेक्ट है। विभिन्न प्रकार के ब्रैकेट्स के विभिन्न अर्थों से अवगत रहें:

 var someArray = []; var someObject = {};