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)
}