JSFiddle - React, Tailwind, and code Playground
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