2012-07-01 6 views
11

संभव डुप्लिकेट:
best way to get the key of a key/value javascript objectकिसी ऑब्जेक्ट में कुंजी मान जोड़े की सूची कैसे प्राप्त करें?

foo = {बार: "baz"}

कैसे आप के भीतर सभी गुणों और मूल्यों की एक सूची मिलता है foo?

+0

https://stackoverflow.com/questions/5000953/javascript-object-key-value/47753960#47753960 पर इसके बारे में अधिक पढ़ सकते हैं –

उत्तर

30

एक for in पाश आप कुंजी और मान दे सकते हैं।

for(i in foo) { 
    console.log (i, foo[i]) 
} 

कंसोल से:

foo = {bar: "baz"} 

Object 
bar: "baz" 
__proto__: Object 

for(i in foo) { console.log (i, foo[i]) } 
> bar baz 

वस्तु तुम पर पाशन कर रहे हैं यह के प्रोटोटाइप से गुण विरासत में मिला है है, तो आपको विरासत में मिला गुण इस तरह Object.hasOwnProperty() समारोह का उपयोग करने पर फंस जाने से रोका जा सकता है :

for(i in foo) { 
    if (foo.hasOwnProperty(i)) { 
     console.log (i, foo[i]) 
    } 
} 
1

आप कर सकते हैं इसके माध्यम से पाश:

for(var i in foo) { 
    console.log(i + ": " + foo[i] + "<br />"); 
} 

Demo

0

यह विभिन्न प्लेटफ़ॉर्म के लिए अलग-अलग हो सकता है जिन पर आप वर्तमान में काम कर रहे हैं। यदि आप टर्मिनल से चल रहे हैं तो आप print का उपयोग करते हैं, यदि आपके पास console ऑब्जेक्ट नहीं है तो आप document.write() और इसी तरह का उपयोग कर सकते हैं।

यहाँ कुछ है कि आप उपयोग कर सकते हैं/समझने के लिए पढ़ा है: वैकल्पिक रूप से

var foo = {bar: "baz", boolean: true, num: 2} 

for (i in foo) { 
//checks to see where to print. 
if (typeof console === 'object') 
    console.log(i + ": " + foo[i]); 
else if (typeof document === 'object') 
    document.write(i + ": " + foo[i]); 
else 
    print(i + ": " + foo[i]); 
} 

, अगर आप सिर्फ क्रोम/फ़ायरफ़ॉक्स में console.log(foo) कहते हैं, ब्राउज़रों की पाशन-प्रकाश डाला आप के लिए और आप एक pretty- देना अपने ऑब्जेक्ट का प्रिंट करें, इसलिए आपको ऊपर दिखाए गए लूपिंग को वास्तव में करने की ज़रूरत नहीं है।

तुम भी console.log(foo) के बजाय console.debug(foo) उपयोग कर सकते हैं, अंतर सूक्ष्म है। आप http://getfirebug.com/wiki/index.php/Console_API

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