v1
10/6/2019 by rai 10/9/201900
Setup HTML - click to add setup HTML
disable setup JavaScript
Setup JavaScript
function get(obj, path) {
  if (typeof obj !== "object" && typeof obj !== "function") {
    return undefined;
  }

  if (typeof path !== "string") {
    return undefined;
  }

  var props = path.match(/(?<=["']).+(?=['"])|[\w]+/g) || [];

  for (var i = 0; i < props.length; i++) {
    var prop = props[i];
    if (!obj.hasOwnProperty(prop)) {
      return undefined;
    }

    obj = obj[prop];
  }

  return obj;
}
delete caserun single casemove downdrag and drop case


ready



get()
delete caserun single casemove upmove downdrag and drop case


ready



get(null)
delete caserun single casemove upmove downdrag and drop case


ready



get(undefined)
delete caserun single casemove upmove downdrag and drop case


ready



get("")
delete caserun single casemove upmove downdrag and drop case


ready



get(0)
delete caserun single casemove upmove downdrag and drop case


ready



get(false)
delete caserun single casemove upmove downdrag and drop case


ready



get({ a: "b" }, null)
delete caserun single casemove upmove downdrag and drop case


ready



get({ a: "b" }, undefined)
delete caserun single casemove upmove downdrag and drop case


ready



get({ a: "b" }, 0)
delete caserun single casemove upmove downdrag and drop case


ready



get({ a: "b" }, false)
delete caserun single casemove upmove downdrag and drop case


ready



get({ a: "b" }, {})
delete caserun single casemove upmove downdrag and drop case


ready



get({ a: "b" }, "aa.b")
delete caserun single casemove upmove downdrag and drop case


ready



get({ a: "b" }, "a.b.c")
delete caserun single casemove upmove downdrag and drop case


ready



get({ a: "b" }, "a")
delete caserun single casemove upmove downdrag and drop case


ready



get({ a: { b: "c" } }, "a.b")
delete caserun single casemove upmove downdrag and drop case


ready



get({ "a.b": "c" }, "['a.b']")
delete caserun single casemove upmove downdrag and drop case


ready



get([{ a: "b" }], "[0]")
delete caserun single casemove upmove downdrag and drop case


ready



get({ a: [{ b: "c" }] }, "a[0]")
delete caserun single casemove upmove downdrag and drop case


ready



get({ a: [{ b: "c" }] }, "a[0].b")
delete caserun single casemove upmove downdrag and drop case


ready



get({ a: { b: ["c"] } }, "a.b[0]")
delete caserun single casemove upmove downdrag and drop case


ready



get({ a: { b: { c: { d: "e" } } } }, "a")
delete caserun single casemove upmove downdrag and drop case


ready



get({ a: { b: { c: { d: "e" } } } }, "a.b")
delete caserun single casemove upmove downdrag and drop case


ready



get({ a: { b: { c: { d: "e" } } } }, "a.b.c")
delete caserun single casemove upmove downdrag and drop case


ready



const a = () => {};
a.b = { c: "d" };

get(a, "")
delete caserun single casemove upmove downdrag and drop case


ready



const a = () => {};
a.b = { c: "d" };

get(a, "b")
delete caserun single casemove updrag and drop case


ready



const a = () => {};
a.b = { c: "d" };

get(a, "b.c")
Test Case - click to add another test case
Teardown JS - click to add teardown JavaScript
Output (DOM) - click to monitor output (DOM) while test is running
RUN