JSFiddle - React, Tailwind, and code Playground
by Oleh Aloshkin
JavaScript
var numbers = { // Our object
a: null,
b: {
c: 2,
d: 3,
e: {
f: 5,
g: null
},
h: 6
},
i: {}
};
function deep(obj, newObj) { // Do same as "merge" function, but just for nested objects
var counter = 0;
for (var size in obj) {
if (obj[size] == null) {
obj[size] = "null";
}
if (JSON.stringify(obj[size]) == "{}") {
obj[size] = "underfined";
}
if (obj[size].constructor == Object) {
deep(obj[size], newObj);
counter++;
} else {
newObj[Object.keys(obj)[counter]] = obj[size];
counter++;
}
}
return JSON.stringify(newObj);
}
function merge(obj) {
var newObj = {},
counter = 0;
for (var number in obj) { // Loop out object {
if (obj[number] == null) {
obj[number] = "null";
}
if (JSON.stringify(obj[number]) == "{}") { // If object empty
obj[number] = "underfined"; //
}
if (obj[number].constructor == Object) { // If property of object is object (obj[number])
deep(obj[number], newObj);
counter++;
} else { // If property (obj[number]) isn't object
newObj[Object.keys(obj)[counter]] = obj[number]; // Write to newObj property
counter++;
}
}
return JSON.stringify(newObj); // Return our newObj in JSON format
}
alert(merge(numbers));