Для этого вам придется немного пройтись.
Разделить путь на .
, затем Array.reduce
надчасти с каждой итерацией обращаются к свойству, к которому оно обращается, через метод доступа к скобкам .
В конце концов вы достигнете значения, которое вы ищете.
var obj = {
'text': 'hello',
'foo': {
'float': 0.5,
'bar': {
'id': 42,
'baz': [{ name: 'Mary' }, { name: 'Jane' }]
}
}
};
var getValueByPath = (obj, path) =>
path.split('.').reduce((acc, part) => acc ? acc[part] : undefined, obj);
var keyOne = 'text';
var keyTwo = 'foo.float';
var keyThree = 'foo.bar.id';
var keyFour = 'foo.bar.baz.1.name';
console.log(getValueByPath(obj, keyOne));
console.log(getValueByPath(obj, keyTwo));
console.log(getValueByPath(obj, keyThree));
console.log(getValueByPath(obj, keyFour));