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