https://github.com/a8m/deep-keys
Create an array composed of the own enumerable property names (including nested) of an object.
https://github.com/a8m/deep-keys
deep-keys javascript js nested-keys nested-properties
Last synced: 2 months ago
JSON representation
Create an array composed of the own enumerable property names (including nested) of an object.
- Host: GitHub
- URL: https://github.com/a8m/deep-keys
- Owner: a8m
- License: mit
- Created: 2014-10-13T09:09:27.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2017-12-04T18:35:42.000Z (over 7 years ago)
- Last Synced: 2025-03-12T18:48:33.551Z (2 months ago)
- Topics: deep-keys, javascript, js, nested-keys, nested-properties
- Language: JavaScript
- Homepage:
- Size: 13.7 KB
- Stars: 22
- Watchers: 7
- Forks: 7
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: license
Awesome Lists containing this project
README
# deep-keys
[![NPM version][npm-image]][npm-url]
[![Build status][travis-image]][travis-url]
[![Test coverage][coveralls-image]][coveralls-url]
[![Dependency Status][david-image]][david-url]
[![License][license-image]][license-url]
[![Downloads][downloads-image]][downloads-url]> Creates an array composed of the own enumerable property names(including nested) of an object.
**Note:** This kit works great with [obj-parse](https://github.com/a8m/obj-parse) _(get and set object properties in a fast and elegant way)._
## Install
```sh
$ npm install --save deep-keys
```## Usage
##### `deepKeys(obj, intermediate[optional])`
```js
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: [] }
};
deepKeys(obj1);
//=> ['a', 'b.c', 'c.d.e', 'c.f', 'd.e.f.g', 'd.e.f.h', 'e', 'f.g']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' ]
```## License
MIT © [Ariel Mashraki](https://github.com/a8m)
[npm-image]: https://img.shields.io/npm/v/deep-keys.svg?style=flat-square
[npm-url]: https://npmjs.org/package/deep-keys
[travis-image]: https://img.shields.io/travis/a8m/deep-keys.svg?style=flat-square
[travis-url]: https://travis-ci.org/a8m/deep-keys
[coveralls-image]: https://img.shields.io/coveralls/a8m/deep-keys.svg?style=flat-square
[coveralls-url]: https://coveralls.io/r/a8m/deep-keys
[david-image]: http://img.shields.io/david/a8m/deep-keys.svg?style=flat-square
[david-url]: https://david-dm.org/a8m/deep-keys
[license-image]: http://img.shields.io/npm/l/deep-keys.svg?style=flat-square
[license-url]: LICENSE
[downloads-image]: http://img.shields.io/npm/dm/deep-keys.svg?style=flat-square
[downloads-url]: https://npmjs.org/package/deep-keys