Flatten a nested object, renaming keys if collisions exist
Flattens nested javascript objects into a single level. Enumerates keys that collide.
npm install flatten-object
> var flattenObject = require('flatten-object');
> var nested = {foo: 'bar', baz: {foo: 'bar'}};
> flattenObject(nested):
{
foo_0: 'bar',
foo_1: 'bar'
};
> var flattenObject = require('flatten-object');
> var nested = {foo: 'bar', baz: {foo: 'bar'}};
> flattenObject(nested, 0, '-'):
{
foo-0: 'bar',
foo-1: 'bar'
};
/**
* Flatten an object down to a optionally specified maximum depth
* @method exports
* @param {object} obj Object to flatten
* @param {integer} [maxDepth=0] Maximum depth to recurse to. Zero is unlimited.
* @param {string} [sep=_] Separator for keys. If you use this, you must specify maxDepth. It's just how javascript is
* @returns {object} flattened object
*/
MIT license, Copyright © 2015 Todd Kennedy