JSFiddle - React, Tailwind, and code Playground
by Nikhil krishnan
JavaScript
function getObjectAtPath(obj, pathString) {
let paths = pathString.split(".")
let newObj = obj
for (const path of paths) {
let innerData = newObj[path]
newObj = innerData
if (!newObj)
break
}
if (newObj)
return newObj
}
const inputObject = {
a: {
b: {
c: 1,
d: 2
},
c: {
c: 1,
d: 2
}
},
c: {
c: 1
}
};
console.log(getObjectAtPath(inputObject, 'a.b.c')); // 1
console.log(getObjectAtPath(inputObject, 'a.b')); // {c : 1, d: 2}
console.log(getObjectAtPath(inputObject, 'a.c')); // undefined
console.log(getObjectAtPath(inputObject, 'a.d.c')); // undefined
console.log(getObjectAtPath(inputObject, 'a.b.d')); // 2
console.log(getObjectAtPath(inputObject, 'a.b.f')); // undefined
console.log(getObjectAtPath(inputObject, 'a.c')); // undefined