JSFiddle - React, Tailwind, and code Playground
by Kumar Sidharth
JavaScript
var input = {
"d": {
"a": 2,
"d": 34,
"df": {
"g": 12,
"f": 12,
"ab": [12, 23]
}
},
"c":32
}
var output = {
"d.a": 2,
"d.d": 34,
"d.df.g": 12,
"d.df.f": 12,
"d.df.ab.0":12,
"d.df.ab.1":23,
"c":32
};
function flatten(obj, output = {}, parentObjectKey = '') {
const keys = Object.keys(obj);
for(let i=0; i<keys.length; i++) {
if(!isNaN(obj[i])) {
output[keys[i]] = obj[i];
} else {
output[keys[i] + '.' + parentObjectKey] = flatten(obj[i], output, keys[i]);
}
}
return output;
}
console.log(flatten(input));