Flatten Deeply Nested Object
const FlattenObject = (OBJ) => {
const flattenObject = {};
function generateFlattenObject(OBJ, parent) {
for (let key in OBJ) {
let newParent = parent + key;
let result = OBJ[key];
if (typeof result === "object") {
generateFlattenObject(result, newParent + ".");
} else {
flattenObject[newParent] = result;
}
}
}
generateFlattenObject(OBJ, "");
return flattenObject;
};
const OBJ = {
A: "12",
B: 23,
C: {
P: 23,
O: {
L: 56,
},
Q: [1, 2],
},
};
console.log(FlattenObject(OBJ));
// Output:
{ A: '12', B: 23, 'C.P': 23, 'C.O.L': 56, 'C.Q.0': 1, 'C.Q.1': 2 }