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));