findPath
by Arnaud Buchholz
JavaScript
var obj = {
a: {
b: {
c: 12,
j: false
},
k: null
}
};
const findPath = (object, path) => {
try {
return path.split('.')
.reduce((current, member) => current[member], object);
} catch (e) {}
};
console.log(findPath(obj, 'a.b.c')); // 12
console.log(findPath(obj, 'a.b')); // {c: 12, j: false}
console.log(findPath(obj, 'a.b.d')); // undefined
console.log(findPath(obj, 'a.c')); // undefined
console.log(findPath(obj, 'a.b.c.d')); // undefined
console.log(findPath(obj, 'a.b.c.d.e')); // undefined
console.log(findPath(obj, 'a.b.j')); //false
console.log(findPath(obj, 'a.b.j.k')); //undefined
console.log(findPath(obj, 'a.k')); //null