JSFiddle - React, Tailwind, and code Playground

by Grigur

JavaScript

var tree = {
    item1: {
        item11: {},
        item12: {}
    },
    item2: {
        item21: {
            item211: {},
            item212: {}
        }
    }
};

Object.byString = function(o, s) {
    s = s.replace(/\[(\w+)\]/g, '.$1');  // convert indexes to properties
    s = s.replace(/^\./, ''); // strip leading dot
    var a = s.split('.');
    while (a.length) {
        var n = a.shift();
        if (n in o) {
            o = o[n];
        } else {
            return;
        }
    }
    return o;
}

Object.byString(tree, 'item1.item11')['item111'] = {};

alert(JSON.stringify(tree));