Creates an array composed of the own enumerable property names(including nested) of an object and array.
Note: This kit works great with obj-parse (get and set object properties in a fast and elegant way).
$ npm install --save deep-keys
var deepKeys = require('deep-keys');
var obj1 = {
a: 1,
b: { c: 1 },
c: { d: { e: 1 }, f: 1 },
d: { e: { f: { g: 1, h: 2 } } },
e: 2,
f: { g: [{ foo: 1 }, { bar: 2, baz: 3 }] }
};
deepKeys(obj1);
//=> ['a', 'b.c', 'c.d.e', 'c.f', 'd.e.f.g', 'd.e.f.h', 'e', 'f.g.0.foo', 'f.g.1.bar', 'f.g.1.baz']
var obj2 = {
type: 'customer',
details: {
name: 'Ariel', age: 26, address: { city: 'Tel Aviv', country: 'Israel' }
},
isActive: true
};
deepKeys(obj2);
//=> ['type', 'details.name', 'details.age', 'details.address.city', 'details.address.country', 'isActive']
// intermediate example
var obj3 = {a:{b:{c:1}}};
deepKeys(obj3); //=> [ 'a.b.c' ]
deepKeys(obj3, true); //=> [ 'a', 'a.b', 'a.b.c' ]
// Dots in key names get escaped
var obj4 = { 'a.': { b: 1} };
deepKeys(obj4) //=> [ 'a\\..b' ]
MIT © Ariel Mashraki