दिलचस्प पोस्ट
@ प्रॉपर्टी और उद्देश्य- सी में असाइन, प्रतिलिपि, नॉनैटॉमिक, बनाए रखें एंड्रॉइड त्रुटि: डिवाइस पर * .apk इंस्टॉल करने में विफल *: समयबाह्य उद्देश्य-सी में एक वर्ग के लिए निजी तरीकों को परिभाषित करने का सर्वोत्तम तरीका टंकिनर पाठ विजेट में कुछ शब्दों का रंग कैसे बदल सकता है? अगर धागे एक ही पीआईडी ​​साझा करते हैं, तो उन्हें कैसे पहचाना जा सकता है? गिट धक्का का उपयोग करके एक प्रोजेक्ट को परिनियोजित करें क्या मैं सभी परियोजनाओं को एक रिपॉजिटरी या एकाधिक में संग्रहित कर सकता हूं? क्या विंडोज़ 7 में भी WPF अनुप्रयोग मेट्रो-स्टाइल को देखते हैं? (विंडो क्रोम / थीमिंग / थीम) C ++ में 3D सरणी को कैसे प्रारंभ करें सर्वर की ओर से पता चलता है कि कुकीज़ अक्षम हैं या नहीं jqGrid: कॉलम के नाम से पंक्ति सेल मूल्य पर आधारित पंक्ति का पृष्ठभूमि रंग बदलें एसक्यूएल: अधिकतम प्रति समूह का पता लगाएं कैसे एक सरणी में mysql स्टोर करने के लिए? कैसे php के साथ खोज इंजन बॉट्स का पता लगाने के लिए? क्या मैं 100% चौड़ाई वाले टेक्स्ट बॉक्स को अपने कंटेनरों से परे तक फैलाने से रोक सकता हूं?

जावास्क्रिप्ट ऑब्जेक्ट कुंजी सूची प्राप्त करना

मेरे पास जावास्क्रिप्ट ऑब्जेक्ट है

var obj = { key1: 'value1', key2: 'value2', key3: 'value3', key4: 'value4' } 

इस ऑब्जेक्ट में मैं चाबी की लंबाई और सूची कैसे प्राप्त करूं?

Solutions Collecting From Web of "जावास्क्रिप्ट ऑब्जेक्ट कुंजी सूची प्राप्त करना"

 var keys = []; for(var k in obj) keys.push(k); alert("total " + keys.length + " keys: " + keys); 
 var obj = { key1: 'value1', key2: 'value2', key3: 'value3', key4: 'value4' } var keys = Object.keys(obj); console.log('obj contains ' + keys.length + ' keys: '+ keys); 

अंडरस्कोर। जेएस परिवर्तन को साफ करता है:

 var keys = _.map(x, function(v, k) { return k; }); 

संपादित करें: मुझे याद आया कि आप यह भी कर सकते हैं:

 var keys = _.keys(x); 

यदि आप केवल उन चाबियाँ चाहते हैं जो कि विशिष्ट ऑब्जेक्ट के लिए विशिष्ट हैं और कोई भी व्युत्पन्न prototype गुण नहीं हैं:

 function getKeys(obj) { var r = [] for (var k in obj) { if (!obj.hasOwnProperty(k)) continue r.push(k) } return r } 

उदाहरण के लिए:

 var keys = getKeys({'eggs': null, 'spam': true}) var length = keys.length // access the `length` property as usual for arrays 
 obj = {'a':'c','b':'d'} 

तुम कोशिश कर सकते हो:

 [index for (index in obj)] 

यह वापस करेगा:

 ['a','b'] 

चाबी की सूची प्राप्त करने के लिए या

 [obj[index] for (index in obj)] 

मूल्यों को प्राप्त करने के लिए

 var keys = new Array(); for(var key in obj) { keys[keys.length] = key; } var keyLength = keys.length; 

वस्तु से किसी भी मूल्य का उपयोग करने के लिए, आप obj [key] का उपयोग कर सकते हैं;

ध्यान दें कि coffeescript में यह सभी ब्राउज़रों और नोड में पूरा किया जा सकता है

 k for k of obj 

और इस तरह

 (1 for _ of obj).length 

अनुराग का जवाब मूल रूप से सही है। लेकिन पुराने ब्राउज़रों में Object.keys(obj) का समर्थन करने के साथ ही आप नीचे दिए गए कोड का उपयोग कर सकते हैं जो https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/ से कॉपी किया गया है। कुंजी यह Object.keys(obj)Object.keys(obj) पद्धति को जोड़ता है अगर यह ब्राउज़र से उपलब्ध नहीं है।

 if (!Object.keys) { Object.keys = (function() { 'use strict'; var hasOwnProperty = Object.prototype.hasOwnProperty, hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString'), dontEnums = [ 'toString', 'toLocaleString', 'valueOf', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'constructor' ], dontEnumsLength = dontEnums.length; return function(obj) { if (typeof obj !== 'object' && (typeof obj !== 'function' || obj === null)) { throw new TypeError('Object.keys called on non-object'); } var result = [], prop, i; for (prop in obj) { if (hasOwnProperty.call(obj, prop)) { result.push(prop); } } if (hasDontEnumBug) { for (i = 0; i < dontEnumsLength; i++) { if (hasOwnProperty.call(obj, dontEnums[i])) { result.push(dontEnums[i]); } } } return result; }; }()); } 

एक जेएसएएन ऑब्जेक्ट की कुंजी की एक अल्पविराम-चित्रित स्ट्रिंग के लिए, निम्न प्रयास करें:

 function listKeys(jObj){ var keyString = ''; for(var k in jObj){ keyString+=(','+k); } return keyString.slice(1); } /* listKeys({'a' : 'foo', 'b' : 'foo', 'c' : 'foo'}) -> 'a,b,c' */ 

टुकड़ा का उपयोग करें, लागू करें और विधि से जुड़ें

 var print = Array.prototype.slice.apply( obj ); alert('length='+print.length+' list'+print.join()); 

ब्राउज़रों के लिए रिकर्सिव समाधान जो ECMAScript 5 का समर्थन करते हैं:

 var getObjectKeys = function(obj) { var keys = Object.keys(obj); var length = keys.length; if (length !== 0) { for (var i = 0; i < length; i++) { if (typeof obj[keys[i]] === 'object') { keys[keys[i]] = getObjectKeys(obj[keys[i]]); } } } return keys; };