JSFiddle - React, Tailwind, and code Playground

JavaScript

var obj = {
    "foo": {
         "bar": {
              "baz": "cake"
         },
         "notbar": {
              "another": "value"
         }
    }
}

var path = ["foo","bar","baz"];

var v = modify(obj, path); // getter
console.log(v); 

modify(obj, path, 'val'); // setter
console.log(obj);

function modify(obj, path, val) {
    var e = obj, l = path.pop();
    
    path.forEach(function(x) { x in e ? e = e[x] : e; });
    
    if (typeof val === 'undefined') return e[l];
    e[l] = val;
    return e;
}