दिलचस्प पोस्ट
मैं Windows पर c ++ कंसोल एप्लिकेशन से यूटीएफ -8 कैसे प्रिंट करूं? क्यों किसी भी प्रकार एक बाउंड रिटर्न के साथ इस सामान्य विधि कर सकते हैं? सी ++ में प्रक्रिया नाम कैसे प्राप्त करें इकाई फ़्रेमवर्क 6 का उपयोग करते हुए एसक्यूएल सर्वर से छवि (बाइनरी) को सुरक्षित और पुनः प्राप्त करें संकलन समय पर लक्ष्य ढांचा संस्करण का पता लगाएं SVG का आकार बदलें जब विंडो को d3.js में बदल दिया जाता है क्या एनाकोंडा प्रत्येक नए पर्यावरण के लिए एक अलग पीआईथोनपाथ चर बनाते हैं? टर्मिनल पर पासवर्ड इनपुट छुपाएं सभी दूरस्थ जीआईटी शाखाओं को स्थानीय शाखाओं के रूप में ट्रैक करें कैसे ढाल के साथ सूत्रों का जार बनाने के लिए कैसे दो तिथियों के बीच सभी महीनों को सूचीबद्ध करें जावास्क्रिप्ट regex में उपयोग के लिए स्ट्रिंग एस्केप Scikit- सीखने classifiers के लिए सबसे जानकारीपूर्ण विशेषताएं कैसे प्राप्त करें? दस्तावेज निर्देशिका (एनएसडी दस्तावेज़ डायरेक्टरी) क्या है? पायथन में निर्देशिकाओं को घुमावने के लिए os.walk () का प्रयोग करना

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

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

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

$.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 } });​ 

बेला

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

जावास्क्रिप्ट में एक अजीब व्यवहार और युक्ति का एक प्रकार है आरे का 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 = {};