JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"></script>

JavaScript

myObj = {
    contact : {
        firstname : "ryan",
        lastname : "anklam"        
    },
    company : {
        name : "IDL",
        address : {
            line1 : "123 Fake St",
            line2: "Apt 1"
        }
    },
    username : "bittersweetyran",
    fruitsILike : ["apples","bananas","pineapple"],
    nestedArOb: [{"name":"test"}]
};



var res = {};
(function recurse(obj, current) {
  for(var key in obj) {
    var value = obj[key];
    var newKey = (current ? current + "." + key : key);  // joined key with dot
    if(value && typeof value === "object") {
      recurse(value, newKey);  // it's a nested object, so do it again
    } else {
      res[newKey] = value;  // it's not an object, so set the property
    }
  }
})(myObj);


var result = JSON.stringify(res);  // convert result to JSON

console.log(result);