en el mundo de la codificación, tengo datos en formato de
knownMessages : { topic:string, messages: Array<{ key: string; value; sum_num: number; headers: Map<string, string>; }>; }[]
si tengo
knownMessages = {topic:"some_topic", messages: [{"network type":"lan"}, {"agent": "aman"},{ "my ed":"btech"}]}
¿Cómo puedo cambiar las claves de modo que elimine el espacio como la clave "tipo de red" es "tipo de red" y también volver a agregarlo al diccionario?
{"network-type": "lan", {"agent": "aman"}, {"my-ed": "btech"}}
for(let i = 0; i < knownMessages.messages.length; i++){ if(knownMessages.message[i][key].include(" ")){ const newKey = key.replace(/\s+/g, "-"); knownMessages.messages[i][newKey] = value; delete topicMessage.messages[i][key] } }
Esto me está dando errores, no sé javaScript y no sé cómo acceder a las claves.
esto funcionará
será mejor agregar '_' o renombrarlo a camalcase
knownMessages = {topic:"some_topic", messages: [ {"network type":"lan"}, {"agent": "aman"}, { "my ed":"btech"} ] } console.log(knownMessages) for(let i = 0; i < knownMessages.messages.length; i++){ key =Object.keys(knownMessages.messages[i])[0] if(key.includes(" ")){ const newKey = key.replace(/\s+/g, "_"); knownMessages.messages[i][newKey] = knownMessages.messages[i]key] delete knownMessages.messages[i][key] } } console.log(knownMessages)
antes de
Object { topic: "some_topic", messages: Array [Object { network type: "lan" }, Object { agent: "aman" }, Object { my ed: "btech" }] }
después
Object { topic: "some_topic", messages: Array [Object { network-type: "lan" }, Object { agent: "aman" }, Object { my-ed: "btech" }] }