JSFiddle - React, Tailwind, and code Playground

by shanimal

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/1.0.0-rc.3/lodash.min.js"></script>

JavaScript

var someObject = {
        'part1' : {
            'name': 'Part 1',
            'size': '20',
            'qty' : '50'
        },
        'part2' : {
            'name': 'Part 2',
            'size': '15',
            'qty' : '60'
        },
        'part3' : [
            {
                'name': 'Part 3A',
                'size': '10',
                'qty' : '20'
            }, {
                'name': 'Part 3B',
                'size': '5',
                'qty' : '20'
            }, {
                'name': 'Part 3C',
                'size': '7.5',
                'qty' : '20'
            }
        ]
    };

    function path(obj,path){
        try{
            return eval("obj."+path);
        } catch(e) {
            return undefined;
        }
    }
    
    var part1name = path(someObject,"part1.name");
    var part2quantity = path(someObject,"part2.qty");
    var part3name1 = path(someObject,"part3[0].name");
    var part4 = path("foo.bar")
    var part30size = path(someObject,"part3[0].size=8")

    document.write("<br/>part1name : "+part1name); // Part 1
    document.write("<br/>part2quantity : "+part2quantity); // 60
    document.write("<br/>part3name1 : "+part3name1); // Part 3A
    document.write("<br/>part4 : "+part4); // undefined
    document.write("<br/>part30size : "+part30size) // set to 8