JSFiddle - React, Tailwind, and code Playground

by Joshua Koudys

HTML

<div id="output"></div>

JavaScript

var inputObject = {
    prop1: {
        x: 19,
        y: 43
    },
    prop2: {
        another: {
            here: 1
        }
    },
    prop3: "hello"
};

function getProps(obj) {
  var props = [];

  var findPropsRecursive = function (robj, str) {
    robj = robj || {};
    var keys = Object.keys(robj);
    if (keys.length > 0 && (robj instanceof Object)) {
      return keys.map(function (key) {
        return findPropsRecursive(robj[key], str + (str ? '.' : '') + key);
      });
    } else {
      props.push(str);
      return '';
    }
  };

  findPropsRecursive(obj, '');

  return props;
}

console.log(getProps(inputObject));