JSFiddle - React, Tailwind, and code Playground
JavaScript
var path = ["foo","bar","baz"];
var obj = {
"foo": {
"bar": {
"baz": "cake"
},
"notbar": {
"another": "value"
}
}
}
alert(JSON.stringify(obj));
setPropertyByPath(obj, path, "newVal");
alert(JSON.stringify(obj));
function setPropertyByPath(obj, path, value) {
if(!path || path.length === 0) return;
var _obj = obj;
var property = path[0];
for(var i = 1; i < path.length; i++) {
property += "." + path[i];
}
property = "_obj." + property + " = \"" + value + "\"";
eval(property)
}