JSFiddle - React, Tailwind, and code Playground
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 = {
"foo":{
"bar":{
"baz":[
{
"foo bar":"baz",
"baz foo":"bar",
"bazfoo":"bar"
}
]
}
}
};
var test1 = "foo.bar.baz[0]['bazfoo']";
var test2 = "foo.bar.baz[0]['foo bar']";
//My required result from test1 is 'bar'
alert(test1 + ' is ' + getProperty(someObject, test1));
//My required result from test2 is 'baz'
alert(test2 + ' is ' + getProperty(someObject, test2));