JSFiddle - React, Tailwind, and code Playground

by fkling

JavaScript

function getProperty(obj, prop) {
        var parts = prop.split('.'),
            last = parts.pop(),
            l = parts.length,
            i = 1,
            current = parts[0];
            
        while((obj = obj[current]) && i < l) {
            current = parts[i];
            i++;
        }

        if(obj) {
            return obj[last];
        }
    }


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'
        }
    ]
};
var part1name = "part1.name";
var part2quantity = "part2.qty";
var part3name1 = "part3.0.name";

alert(part1name + ' is ' + getProperty(someObject, part1name));
alert(part2quantity + ' is ' + getProperty(someObject, part2quantity));
alert(part3name1 + ' is ' + getProperty(someObject, part3name1));