{{alias}}( obj[, options] ) Flattens an object. Parameters ---------- obj: ObjectLike Object to flatten. options: Object (optional) Options. options.depth: integer (optional) Maximum depth to flatten. options.copy: boolean (optional) Boolean indicating whether to deep copy. Default: false. options.flattenArrays: boolean (optional) Boolean indicating whether to flatten arrays. Default: false. options.delimiter: string (optional) Key path delimiter. Default: '.'. Returns ------- out: ObjectLike Flattened object. Examples -------- > var obj = { 'a': { 'b': { 'c': 'd' } } }; > var out = {{alias}}( obj ) { 'a.b.c': 'd' } // Set the `depth` option to flatten to a specified depth: > obj = { 'a': { 'b': { 'c': 'd' } } }; > out = {{alias}}( obj, { 'depth': 1 } ) { 'a.b': { 'c': 'd' } } > var bool = ( obj.a.b === out[ 'a.b' ] ) true // Set the `delimiter` option: > obj = { 'a': { 'b': { 'c': 'd' } } }; > out = {{alias}}( obj, { 'delimiter': '-|-' } ) { 'a-|-b-|-c': 'd' } // Flatten arrays: > obj = { 'a': { 'b': [ 1, 2, 3 ] } }; > out = {{alias}}( obj, { 'flattenArrays': true } ) { 'a.b.0': 1, 'a.b.1': 2, 'a.b.2': 3 } {{alias}}.factory( [options] ) Returns a function to flatten an object. Parameters ---------- options: Object (optional) Options. options.depth: integer (optional) Maximum depth to flatten. options.copy: boolean (optional) Boolean indicating whether to deep copy. Default: false. options.flattenArrays: boolean (optional) Boolean indicating whether to flatten arrays. Default: false. options.delimiter: string (optional) Key path delimiter. Default: '.'. Returns ------- fcn: Function Flatten function. Examples -------- > var flatten = {{alias}}.factory({ ... 'depth': 1, ... 'copy': true, ... 'delimiter': '|' ... }); > var obj = { 'a': { 'b': { 'c': 'd' } } }; > var out = flatten( obj ) { 'a|b': { 'c': 'd' } } See Also --------