<< Back to main

Javascript Object Recursive Deep Search

const search = (obj, key) => {
  if (key in obj) return obj[key];
  for (var deepKey in obj) {
    if (typeof obj[deepKey] === "object") {
      let result = search(obj[deepKey], key);
      if (result !== null) return result;
    }
  }
  return null;
};

Usage

const obj = {
  a: { b: 1 },
  c: 2,
  d: { e: { f: 3 } },
};

console.log(search(obj, "a"));
console.log(search(obj, "b"));
console.log(search(obj, "c"));
console.log(search(obj, "d"));
console.log(search(obj, "e"));
console.log(search(obj, "f"));
console.log(search(obj, "g"));