无法更改javascript字典中的键



我是一个初学者,我想用连字符从JavaScript字典的键替换空格,并得到键在字典

。在nameVars = {"my name is":"aman", "age":22, "my ed":"btech"}我想要的结果是nameVars = {"my-name-is":"aman", "age":22, "my-ed":"btech"},我用

for(const [key, value] of Object.entries(nameVars)){
key.replace(/s+/g,"-")`
}

但是我的输出仍然是相同的键没有改变,请帮助我不懂JavaScript。

如果这是

格式,谁能告诉我要做什么改变?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"}}' } ] }

这里在数据部分的topicMessages的消息中,我们必须使键分隔,mykey, mykey2, mykey3的值是字符串形式,所以需要转换JSON。首先解析为对象,然后再将其转换回字符串。

您应该替换Object

的内容
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]
}
}

您修改了键的名称,但从未将修改后的键添加回对象。你可以这样处理你的问题:

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

最新更新