JSFiddle - React, Tailwind, and code Playground
JavaScript
var test = {
"data": {
"location": {
"type": "List",
"count": 1,
"items": [
{
"id": 1,
"type": "S",
"address": {
"street": "123 Main St",
"city": "New York",
"state": "NY"
}
},
{
"id": 2,
"type": "S",
"address": {
"street": "1323 South St",
"city": "New York",
"state": "NY"
}
}
]
}
}
};
var input = "data.location.type";
//var input = "data.location.items[1].address.street";
var parts = input.split('.');
var prev;
for(var i = 0; i < parts.length; i++){
var index;
if(parts[i].indexOf('[') != -1){
key = parts[i].substr(0, parts[i].indexOf('['));
index = parseInt(parts[i].substr(parts[i].indexOf('[') + 1, 1), 10);
if(!prev){
prev = test[key][index];
} else {
prev = prev[key][index];
}
} else {
if(!prev){
prev = test[parts[i]];
} else {
prev = prev[parts[i]];
}
if(i === parts.length - 1){
alert(prev);
}
}
}