Q239 — Flatten a Deeply Nested Object
β Goal:
Convert this π
const obj = {
user: {
name: "Teekam",
address: {
city: "Delhi",
pin: 110001
}
},
skills: {
frontend: {
react: true
}
}
};
Into this π
{
"user.name": "Teekam",
"user.address.city": "Delhi",
"user.address.pin": 110001,
"skills.frontend.react": true
}
β Flatten Function (Handles Deep Objects)
function flattenObject(obj, parentKey = "", result = {}) {
for (let key in obj) {
const newKey = parentKey ? `${parentKey}.${key}` : key;
if (typeof obj[key] === "object" && obj[key] !== null && !Array.isArray(obj[key])) {
flattenObject(obj[key], newKey, result);
} else {
result[newKey] = obj[key];
}
}
return result;
}
π§ͺ Example Usage
const output = flattenObject(obj);
console.log(output);
Output:
{
"user.name": "Teekam",
"user.address.city": "Delhi",
"user.address.pin": 110001,
"skills.frontend.react": true
}
π‘ How It Works
- Loops through object keys
- If value is another object → recursively flatten it
- Otherwise add it to result
- Joins nested keys using
"."
π― Real-Time Use Cases
- Converting nested JSON to database fields
- Form data processing
- Logging/analytics
- Creating dot-notation paths for MongoDB
- Working with nested config files