我想在每个json对象键的开头添加一些文本。
Object.keys(json).forEach(key => {
json = json.replace(key, `_${key}`);
});
我正在尝试此方法,但它会更改某些值,而不是在每个键的开头添加_。
答案 0 :(得分:6)
你是对的。您必须迭代Object.keys
并在每次迭代内部分配一个具有相同值的新密钥并删除之前的密钥。
我们在每个密钥前添加-
。
function modifyKeys(obj){
Object.keys(obj).forEach(key => {
obj[`_${key}`] = obj[key];
delete obj[key];
if(typeof obj[`_${key}`] === "object"){
modifyKeys(obj[`_${key}`]);
}
});
}
var jsonObj = {a:10, b:{c:{d:5,e:{f:2}}, g:{}},i:9};
modifyKeys(jsonObj);
console.log(jsonObj);