Object.Keys => Nested

by ti2005

JavaScript

function nestedObjectToArray(obj) {
  if (typeof(obj) !== "object") {
    return [obj];
  }
  var result = [];
  if (obj.constructor === Array) {
    obj.map(function(item) {
      result = result.concat(nestedObjectToArray(item));
    });
  } else {
    Object.keys(obj).map(function(key) {
      if (obj[key]) {
        var chunk = nestedObjectToArray(obj[key]);
        chunk.map(function(item) {
          result.push(key + "_:::_" + item);
        });
      } else {
        result.push(key);
      }
    });
  }
  return result;
}

let json = {
  "id": 1,
  "name": "Leanne Graham",
  "username": "Bret",
  "email": "[email protected]",
  "address": {
    "street": "Kulas Light",
    "suite": "Apt. 556",
    "city": "Gwenborough",
    "zipcode": "92998-3874",
    "geo": {
      "lat": "-37.3159",
      "lng": "81.1496"
    }
  },
  "phone": "1-770-736-8031 x56442",
  "website": "hildegard.org",
  "company": {
    "name": "Romaguera-Crona",
    "catchPhrase": "Multi-layered client-server neural-net",
    "bs": "harness real-time e-markets"
  }
};
let result = nestedObjectToArray(json);
let idx = result.map(r=> {
	return r.substr(0, r.lastIndexOf('_:::_'));
})
console.log(result)
console.log(idx);


var myStr = 'this_:::_is,a_:::_test';
var newStr = myStr.replace(/_:::_/g, '.');

console.log( newStr );  //