Skip to content

Instantly share code, notes, and snippets.

@xeaone
Last active October 9, 2016 22:54
Show Gist options
  • Save xeaone/9fd6392cf22d018d0645b3bf461771b8 to your computer and use it in GitHub Desktop.
Save xeaone/9fd6392cf22d018d0645b3bf461771b8 to your computer and use it in GitHub Desktop.
Flattens a multi level object to a single level object with paths
function flattenObject (object) {
var flatObject = {};
for (var key in object) {
if (!object.hasOwnProperty(key)) continue;
if (object[key] && object[key].constructor.name === 'Object') {
var childObject = flattenObject(object[key]);
for (var childKey in childObject) {
if (!childObject.hasOwnProperty(childKey)) continue;
flatObject[key + '.' + childKey] = childObject[childKey];
}
} else {
flatObject[key] = object[key];
continue;
}
}
return flatObject;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment