const getPropByPath = (object, path) => {
const _path = Array.isArray(path) ?
path :
path.split('.');
if (object && _path.length) return getPropByPath(object[_path.shift()], _path);
return object;
};
const obj = {
a: {
b: 1,
c: {
d: 2
}
}
}
getPropByPath(obj, 'a.b'); // 1
getPropByPath(obj, 'a.c.d'); // 2
getPropByPath(obj, 'a.c'); // { d: 2 }