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 ); //