我不确定如何在可变高度访问原始json。
var json = {
"parent": {
"child": "foo"
}
};
function set_json_value(loc,value){
var curr_json_item = json;
for(var i = 0; i < loc.length - 1;i++){
curr_json_item = curr_json_item[loc[i]];
}
curr_json_item = value;
console.log(json);
}
set_json_value(["parent","child"],"bar");
parent-&gt; child的值仍为&#34; foo&#34;和json没有变化。
答案 0 :(得分:0)
您只需更改变量的值,但不要通过修改属性来更新对象本身。我想你想要这样的东西:
function set_json_value(loc,value){
// todo: make sure loc is not empty here
var curr_json_item = json;
for(var i = 0; i < loc.length - 1;i++){
curr_json_item = curr_json_item[loc[i]];
}
curr_json_item[loc[loc.length-1]] = value;
console.log(json);
}
另外,你不传递“json”作为参数,但是使用全局变量本身,我也会改变它。