2012-02-22 17 views
5

मेरे पास एक वस्तु है। क्या इसकी सभी चाबियों पर अप्परकेस चलाने का कोई तरीका है? क्या मैं कर रहा हूँ इस वस्तुक्या मैं किसी ऑब्जेक्ट पर अपरकेस विधि चला सकता हूं?

JSON.stringify(JSONObj.people).toUpperCase() 

में हर तत्व को अपरकेस में कोशिश कर रहा है मैं मेरे लिए काम करने के लिए उपरोक्त आदेश नहीं मिला है। मैं इसके लिए थोड़ा नया हूं, इसलिए किसी भी मदद की सराहना करें!

+0

कर सकते हैं मुझे उस स्थान पर सटीक JSONObj मान बताएं, ताकि हम कुंजी और मूल्य –

+0

{"जॉन स्मिथ": 25, "जेन डो": 46, "बेन फ्रैंकलिन": 32} – astuttle

उत्तर

6
Object.withUpperCaseKeys = function upperCaseKeys(o) { 
// this solution ignores inherited properties 
    var r = {}; 
    for (var p in o) 
     r[p.toUpperCase()] = o[p]; 
    return r; 
} 

इस विधि का उपयोग अलग कुंजी के साथ एक नई वस्तु बनाने के लिए:

JSONObj.people = Object.withUpperCaseKeys(JSONObj.people); 

आप एक वस्तु (उदाहरण के संशोधित) में परिवर्तन करना चाहते हैं, तो आप का उपयोग

Object.upperCaseKeys = function upperCaseKeys(o) { 
// this solution ignores inherited properties 
    for (var p in o) 
     if (p.toUpperCase() != p) { 
      p[p.toUpperCase()] = o[p]; 
      delete o[p]; 
     } 
    return o; // just for easier chaining 
} 

Object.upperCaseKeys(JSONObj.people); 
+0

डॉन को अलग कर सकें मूल वस्तुओं को हटाने के लिए मत भूलना। –

+0

नहीं, यह विधि एक * नई * ऑब्जेक्ट तैयार करेगी। – Bergi

+0

ओह, आप बिल्कुल सही हैं। माफ़ कीजिये। –

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