var myObject = {};
var location = "test.my.deep.hidden.nested.myVar";
var otherLoc = "test.my.deep.secret.var";
var value = "My value!";
function setValue(location, value, obj){
var i, prev = obj, curr;
location = location.split(".");
for(i = 0; i < location.length - 1; ++i){
curr = prev[location[i]];
if("object" !== typeof curr){
prev[location[i]] = {}
curr = prev[location[i]];
}
prev = curr;
}
curr[location[i]] = value;
}
setValue(location, value, myObject);
setValue(otherLoc, 42, myObject);
console.log(JSON.stringify(myObject));
结果:
{
"test": {
"my": {
"deep": {
"hidden": {
"nested": {
"myVar": "My value!"
}
},
"secret": {
"var":42
}
}
}
}
}
请注意,您可能想要添加一些功能,例如检查位置是否实际有效 ( "this.is..invalid"
)。