JSFiddle - React, Tailwind, and code Playground

by kstubs

HTML

<div id="result"></div>

CSS

#result {
    font-family:arial
}

JavaScript

function Message(message) {
    $('result').insert('<div>' + message + '</div>');
}

var obj = {
    "array": [1, 2, 3],
    "boolean": true,
    "null": null,
    "number": 123,
    "object": {
        "a": "b",
        "c": "d",
        "e": "f",
        "complex_array1": [{
            "g": "h"
        }, {
            "bingo": "bongo"
        }, {
            "x": {
                "complex_array2": [{
                    "h": "i"
                }, {
                    "j": "k"
                }, {
                    "bingo": "bongo"
                }, {
                    "bango": "jango"
                }]
            }
        }]
    },
    "string": "Hello World"
};

var list = [{
    "h": "i"
}, {
    "j": "k"
}];

function walk(path,value) {
    var a = path.split('.');
    var context = obj;

    for (i = 0; i < a.size(); i++) {
        context = context[a[i]];
    }
    context = value;
    Message('Expected value for complex_array2');
    Message('---------------------');
    Message(Object.toJSON(context));
}

Message('Original Value');
Message('---------------------');
Message(Object.toJSON(obj));
Message('=====================');
walk('object.complex_array1.2.x.complex_array2',list);
Message('=====================');
Message('Doesn\'t stick');
Message('---------------------');
Message(Object.toJSON(obj));