JSFiddle - React, Tailwind, and code Playground

by Pavel Kityan

HTML

<div id="view1"></div>
<div id="view2"></div>

JavaScript

var obj = {
  aaa: {
    b1: {
      c2: {
        d3: {
          e4: {
            f5: 123
          }
        }
      }
    }
  }
}

var obj2 = {
  aaa: {
    b1: {
      c2: {
        d3: {
          e4: {
            f5: 'second!'
          }
        }
      }
    }
  }
}




Object.prototype.getData = function(piece, prop){

function digInto(obj, props, level){
  if (!level){level = 0;}
  if (level == (props.length - 1)) {
    return obj[props[level]];
  } else {
    return digInto(obj[props[level]], props, (level+1));
  }
}

  var parts = piece.split('/');
  return digInto(this, parts)[prop];

}


document.getElementById('view1').innerHTML = JSON.stringify(obj['aaa'].getData('b1/c2/d3/e4', 'f5'));
document.getElementById('view2').innerHTML = JSON.stringify(obj2['aaa']['b1'].getData('c2/d3', 'e4'));