Skip to content

Latest commit

 

History

History
39 lines (34 loc) · 1.25 KB

dig.md

File metadata and controls

39 lines (34 loc) · 1.25 KB
title tags author_title author_url author_image_url description image
dig
object,recursion,intermediate
Deepak Vishwakarma
Implementation of "dig" in typescript, javascript and deno.

JS TODO

Returns the target value in a nested JSON object, based on the given key.

Use the in operator to check if target exists in obj. If found, return the value of obj[target], otherwise use Object.values(obj) and Array.prototype.reduce() to recursively call dig on each nested object until the first matching key/value pair is found.

const dig = (obj, target) =>
  target in obj
    ? obj[target]
    : Object.values(obj).reduce((acc, val) => {
        if (acc !== undefined) return acc;
        if (typeof val === "object") return dig(val, target);
      }, undefined);
const data = {
  level1: {
    level2: {
      level3: "some data",
    },
  },
};
dig(data, "level3"); // 'some data'
dig(data, "level4"); // undefined