Skip to content

Instantly share code, notes, and snippets.

@pasangsherpa
Forked from gdibble/flatten-object.js
Last active August 29, 2015 14:14
Show Gist options
  • Save pasangsherpa/da98d75e6659a92c13bf to your computer and use it in GitHub Desktop.
Save pasangsherpa/da98d75e6659a92c13bf to your computer and use it in GitHub Desktop.
var flattenObject = function(ob) {
/*
* @gdibble: Inspired by https://gist.github.com/penguinboy/762197
* input: { 'a':{ 'b':{ 'b2':2 }, 'c':{ 'c2':2, 'c3':3 } } }
* output: { 'a.b.b2':2, 'a.c.c2':2, 'a.c.c3':3 }
*/
var toReturn = {};
for (var i in ob) {
if (!ob.hasOwnProperty(i)) {
continue;
}
if ((typeof ob[i]) === 'object') {
var flatObject = flattenObject(ob[i]);
for (var x in flatObject) {
if (!flatObject.hasOwnProperty(x)) {
continue;
}
toReturn[i + (!!isNaN(x) ? '.' + x : '')] = flatObject[x];
}
} else {
toReturn[i] = ob[i];
}
}
return toReturn;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment