Soy un principiante, quiero reemplazar los espacios con guiones de las claves del diccionario de JavaScript y recuperar las claves en el diccionario
p.ej. En nameVars = {"my name is":"aman", "age":22, "my ed":"btech"} Quiero que el diccionario resultante sea, nameVars = {"my-name-is":"aman", "age":22, "my-ed":"btech"} Lo estoy haciendo usando
for(const [key, value] of Object.entries(nameVars)){ key.replace(/\s+/g,"-")` }Pero mi salida sigue siendo las mismas teclas que no cambian, por favor ayuda, no conozco JavaScript.
Alguien me puede decir que cambios hacer si en cambio esta en formato
topicMessage = { topic: 'some_topic', messages: [{ 'myKey': '{"data": {"my name is ":"aman", "age": 22, "my ed": "btech"}, "meta": {"myAge":24, "school":"aps"}}' }, { 'myKey2': '{ "data": { "my name is 2": "aman", "age": 22, "my ed 2": "btech" }, "meta": { "myAge2": 24, "school": "aps" } } ' }, { "myKey3": '{"data": {"my name is 3":"aman", "age": 22, "my ed 3": "btech"}, "meta": {"myAge":24, "school":"aps"}}' } ] }
aquí dentro de los mensajes de topicMessages en la parte de datos, tenemos que hacer que las teclas se separen, y el valor de mykey, mykey2, mykey3 está en forma de cadena, por lo que primero debe convertir JSON.parse en objeto y luego volver a convertirlo en cadena.
Debes reemplazar el contenido del Objeto.
var nameVars = {"my name is":"aman", "age":22, "my ed":"btech"} for (const [key, value] of Object.entries(nameVars)) { if(key.includes(" ")){ const newKey = key.replace(/\s+/g,"-") nameVars[newKey] = value; delete nameVars[key] } }Usted modifica los nombres de las claves, pero nunca vuelve a agregar las claves modificadas al objeto. Puedes abordar tu problema de esta manera:
for(const [oldKey, value] of Object.entries(nameVars)){ const newKey = oldKey.replace(/\s+/g,"-"); // add the entry with the new key nameVars[newKey] = value; // delete the old entry delete nameVars[oldKey]; }