如何在JSON路径中使用路径变量



我正试图在JSON路径中使用路径变量

我的问题是,我的变量被添加为JSON对象的新键,而不是替换我的路径。

我的示例代码

Data = {
first:{
"Name":"John",
"Age":"43"
}
}
let path = "first.name"
let value = "Jan"
Data[path] = value
console.log(Data)

电流输出

Data = {
first:{
"Name":"John",
"Age":"43"
},
"first.name": "Jan",
}

预期输出

Data = {
first:{
"Name":"Jan",
"Age":"43"
}  
}

有办法解决这个问题吗?谢谢你的帮助🙏

这个脚本将对对象执行您想要的操作(如果我很好地理解您的问题(,直到您为它提供正确的路径:-(

function setAttr(obj, path, value){
let objCopy = obj;
let attrNameArr = path.split('.');
for(let idx = 0; idx < attrNameArr.length-1; idx++){
objCopy = objCopy[attrNameArr[idx]];
}
objCopy[attrNameArr[attrNameArr.length-1]] = value;
return obj;
}

Data = {
first:{
"Name":"John",
"Age":"43"
}
}
setAttr(Data, "first.Name", "Jan");
console.log(Data);

它基本上使用objCopy和obj共享相同引用的事实来更改对象的属性。

相关内容

  • 没有找到相关文章

最新更新