2012-02-22 7 views
5

Tengo un objeto. ¿Hay alguna forma de ejecutar toUppercase en todas sus claves? Lo que estoy haciendo es tratar a mayúsculas todos los elementos de este objeto¿Puedo ejecutar un método en mayúsculas en un objeto?

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

No he recibido el comando de arriba a trabajar para mí. Soy un poco nuevo en esto, así que agradecer cualquier ayuda!

+0

puede dime el valor JSONObj exacto que obtienes en ese lugar ,, para que podamos separar la clave y el valor –

+0

{"John Smith": 25, "Jane Doe": 46, "Ben Franklin": 32} – astuttle

Respuesta

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; 
} 

Utilice este método para crear un nuevo objeto con llaves diferentes:

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

Si desea cambiar un objeto (modificar el ejemplo), utilice

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

Don no te olvides de quitar los artículos originales. –

+0

no, este método creará un objeto * nuevo *. – Bergi

+0

Oh, tienes toda la razón. Lo siento. –

Cuestiones relacionadas